API integration test runners¶
Currently, there are 3 API based test runners.
Configuration can be spread throughout multiple places.
For example dockerTestRoot
can be configured in Charon.
groupingFolders
and systemExtra
can be configured in the root directory of git repository.
testingPlatform
can be configured in grouping folder.
And some exercise specific configuration can be configured in exercise folder.
Here is possible configurations and how to use it.
Uva¶
Uva test runner uses Online Judge's public api.
Configuration¶
Let's say we want to configure tester to work with 11450 - Wedding shopping exercise.
for that arete.json (or Charon settings) should contain next lines:
testingPlatform =
uva
dockerTestRoot =
11450
(the exercise number. Same number what is present in the exercise name)systemExtra =
overrideContentRoot,skipCopyingTests
(this is to compensate for no test repository provided)groupingFolders =
["UVA"]
And student needs to fill the dockerContentRoot
field with his unique identifier.
Here are some steps that can be given to a student so he/she knows how to fill that field:
Tehke kasutaja [uva](https://onlinejudge.org/) keskkonnas ning seejärel tehke gitti endal UVA kaust, kus sees on `arete.json` fail järgmise sisuga:
```
{
"dockerContentRoot": "xxxxxxx"
}
```
Kus siis "xxxxxx" on teie Online Judge ID, mille saate [siit](https://onlinejudge.org/index.php?option=com_comprofiler) lehelt.
Seejärel lahendage [antud](???) ülesanne endale sobivas keeles ning kui Uva annab `Accepted`, siis pange enda lahendus gitti `UVA/???` kausta.
(faili nimi pole oluline)
HackerRank¶
HackerRank tester relies on TaltechCoding
user to make a public contest which students then can join
When 100 points is achieved for an exercise means max grade is achieved. For every contest exercise a new charon must be made.
Configuration¶
Let's say we want to configure Connected Cells in a Grid.
for that arete.json (or Charon settings) should contain next lines:
testingPlatform =
hackerrank
dockerTestRoot =
connected-cell-in-a-grid
(the exercise name in the url right after /challenges/)systemExtra =
overrideContentRoot,skipCopyingTests
(this is to compensate for no test repository provided)dockerExtra =
erikursuse-soojendus
, (the contest name in the url right after /contests/)groupingFolders =
["HACKERRANK"]
And student needs to fill the dockerContentRoot
field with his unique identifier.
Here are some steps that can be given to a student so he/she knows how to fill that field:
Tehke kasutaja [HackerRank](https://www.hackerrank.com/dashboard) keskkonnas ning seejärel tehke gitti endal HACKERRANK kaust, kus sees on `arete.json` fail järgmise sisuga:
```
{
"dockerContentRoot": "xxxxxxx"
}
```
Kus siis "xxxxxx" on teie kasutajanimi, mille saate [siit](https://www.hackerrank.com/settings/account) lehelt.
Seejärel lahendage [antud](???) ülesanne endale sobivas keeles ning kui HackerRank annab `Accepted`, siis pange enda lahendus gitti `HACKERRANK/???` kausta.
(faili nimi pole oluline)
Kattis¶
Kattis tester relies on a public contest which students then can join.
When contest consists of 5 exercises and student solved 2 for 100% and 1 for 50% then his/her total grade will be 50%. For every contest a singular charon must be made.
Configuration¶
Let's say we want to configure tester to work with this contest.
for that arete.json (or Charon settings) should contain next lines:
testingPlatform =
kattis
dockerTestRoot =
qn8jgq
(the contest id in the url right after /contests/)systemExtra =
overrideContentRoot,skipCopyingTests
(this is to compensate for no test repository provided)groupingFolders =
["KATTIS"]
And student needs to fill the dockerContentRoot
field with his unique identifier.
Here are some steps that can be given to a student so he/she knows how to fill that field:
Tehke kasutaja [Kattis](https://open.kattis.com/login) keskkonnas ning seejärel tehke gitti endal KATTIS kaust, kus sees on `arete.json` fail järgmise sisuga:
```
{
"dockerContentRoot": "xxxxxxx"
}
```
Kus siis "xxxxxx" on teie tiimi nimi, mille saate peale võistlusele registreerimist. Seda peab ainult 1 inimene tegema.
Võistluse link tehakse avalikuks vahetult enne võistluse algust.
Peale võistlust pange enda lahendused gitti `KATTIS/???` kausta.
(faili nimed pole olulised)