ARGOS : un système d’auto-Évaluations #
Récupérer le code source #
- Se rendre sur le git d’ARGOS contenant les exercices auto-évaluer.
- Cliquer sur le bouton
Fork:
- Dans le champ
Project name, remplacerArgos Exercicespar votre prénom suivi de votre nom (voir Figure ci-dessous). - Dans le champ
Select a namespace, chercher le nom de votre groupe. La première suggestion devrait être de la formeisc/argos/argos-etudiants/2025-2026/<groupe>)(voir Figure ci-dessous).
⚠️ ATTENTION
Bien laisser la visibilité du projet sur
Internal.
- Cliquer sur le bouton
Fork project. - Cloner son repository.
- Entrer ses informations en éditant le fichier
Options/student_profile.json, comme par exemple :
{
"firstname": "Benoit",
"lastname": "Le Callennec",
"pseudo": "BLC",
"year": 2025,
"email": "benoit.lecallennec@he-arc.ch",
"image": "BLC.png",
"opt-out": false,
"group": "group"
}
- Faire un commit et un push pour mettre à jour son repository.
⚠️ ATTENTION
Il faut toujours travailler sur la branche
main.
Consulter son dashboard #
Un dashboard est disponible pour chaque étudiant sur le gitlab de la HE-Arc.
Il est accessible en cliquant sur Pages, dans l’onglet Deploy :
Il ressemble à ça :
📝 À NOTER
Le dashboard peut prendre plusieurs minutes à générer les pages en fonction de la charge.
Faire un exercice #
- Localiser les balises
// TODOdans le code source. - Compléter le code source selon la donnée de l’exercice.
- Compiler votre code avec
gcc. - Lancer l’exécutable généré (
./a.exepar défaut sous Windows) et tester que le résultat est correct. - Répéter les étapes 2 à 4 jusqu’à ce que le résultat soit correct.
Valider un exercice #
- Faire un commit par exercice complété. Il est important de bien nommer le commit avec un message clair et concis.
- Faire un push sur votre repository.
- Se rendre sur votre repository sur le gitlab de la HE-Arc et attendre que le pipeline se termine :

- Si les tests des exercices ne passent pas, il faut choisir l’étape qui a échoué pour avoir plus de détails.

- Les logs complets ressemblent à ce qui suit.
📝 À NOTER
Les tests qui ont échoué sont indiqués en surbrillance.

Mettre à jour la liste des exercices #
Au fur et à mesure de l’année, de nouveaux exercices seront ajoutés. Le cas échéant, lorsqu’une mise à jour est disponible, un message s’affiche en haut de la page.
Pour mettre à jour votre repository local, il faut :
- Cliquer sur le bouton
Update forkpour mettre à jour son repository en ligne comme indiqué sur la figure ci-dessous :
- Mettre à jour son repository local en exécutant, depuis un Terminal dans Visual Studio Code, la commande
git pull --rebase.
⚠️ ATTENTION
Il ne faut modifier aucun autre fichier dans le répertoire
UnitTests.
Outils CLI pour ARGOS #
Un outil en ligne de commande (CLI) est disponible pour faciliter certaines opérations sur ARGOS. Il est livré avec ARGOS.
📝 À NOTER
Il faut mettre à jour son repository local pour bénéficier de cet outil. Pour cela, suivre la procédure décrite dans la section Mettre à jour la liste des exercices.
Installation #
argos_cli nécessite CMake et Ninja pour fonctionner.
- Installer CMake : CMake for Windows.
- Installer Ninja : https://ninja-build.org/. Copier le fichier
ninja.exedans le répertoireC:/Ninja(par exemple) et ajouter ce répertoire auPATHde Windows.
argos_cli est disponible dans le répertoire racine du projet ARGOS.
Initialiser ARGOS #
Pour initialiser ARGOS, exécuter la commande suivante depuis le répertoire racine de votre projet ARGOS :
.\argos_cli.exe init
Si tout se passe bien, un message de confirmation s’affiche :
Initializing ARGOS...Done.
Compiler les exercices #
Pour compiler les exercices, exécuter la commande suivante depuis le répertoire racine de votre projet ARGOS :
.\argos_cli.exe build
Si tout se passe bien, un message de confirmation s’affiche :
Building ARGOS...Done.
Il est aussi possible de recompiler tous les exercices en utilisant la commande :
.\argos_cli.exe rebuild
Lancer les tests #
⚠️ ATTENTION
Il faut toujours recompiler les exercices avant de lancer les tests lorsque vous avez modifié le code source des exercices.
Pour lancer les tests des exercices, exécuter la commande suivante depuis le répertoire racine de votre projet ARGOS :
.\argos_cli.exe test
Vous obtenez un rapport de test similaire à celui-ci :
.\argos_cli.exe test
Testing ARGOS...Done.
🔴 ch01.ch01_ex01_printHelloWorld
🟢 ch01.ch01_ex02_printMathCalc
🟢 ch01.ch01_ex03_SomeCalculus
🟢 ch02.ch02_ex11_Swap
🟢 ch02.ch02_ex21_CelsiusToFarenheit
🟢 ch02.ch02_ex22_AssetInterestRate
🟢 ch04.ch04_ex01_Printf
🟢 ch04.ch04_ex02_ScanfPrintf
🟢 ch04.ch04_ex03_Circle
🟢 ch05.ch05_ex02_LowercaseUppercase
🟢 ch05.ch05_ex03_MultiplicationSign
🟢 ch05.ch05_ex04_DecreasingOutput
🟢 ch05.ch05_ex07_SecondOrderEquation
🟢 ch05.ch05_ex22_CurrencyConverter
🟢 ch05.ch05_ex23_DaysInMonth
🟢 ch05.ch05_ex32_SumProductMean
🟢 ch05.ch05_ex33_Factorial
🟢 ch06.ch06_ex04_Squares
🟢 ch06.ch06_ex06_Calculator
🟢 ch06.ch06_ex07_SumN
🟢 ch06.ch06_ex08_Invert
🟢 ch08.ch08_ex21_1_CompareArray
🟢 ch08.ch08_ex21_2_PrintArray
🟢 ch08.ch08_ex21_3_FillArray
🟢 ch08.ch08_ex21_ArraySum
🟢 ch08.ch08_ex23_Array2DSum
🟢 ch08.ch08_ex24_DotProduct
🟢 ch08.ch08_ex41_Time
🟢 ch08.ch08_ex42_ComplexSum
🟢 ch08.ch08_ex42_ComplexDiff
🟢 ch08.ch08_ex43_Person
🟢 ch09.ch09_ex06_CopyArrays
🟢 ch09.ch09_ex10_Swap
🟢 ch11.ch11_ex02_Reset
🟢 ch11.ch11_ex03_ResetPointer
🟢 ch11.ch11_ex07_EditArray
Il est aussi possible de ne tester qu’un ou plusieurs chapitres en particulier en utilisant l’option --chapters ou -c suivie des numéros des chapitres à tester :
.\argos_cli.exe test -c ch01 ch02
Vous obtenez un rapport de test similaire à celui-ci :
.\argos_cli.exe test -c ch01 ch02
Testing ARGOS...Done.
🔴 ch01.ch01_ex01_printHelloWorld
🟢 ch01.ch01_ex02_printMathCalc
🟢 ch01.ch01_ex03_SomeCalculus
🟢 ch02.ch02_ex11_Swap
🟢 ch02.ch02_ex21_CelsiusToFarenheit
🟢 ch02.ch02_ex22_AssetInterestRate
Pour identifier les erreurs dans les tests, vous pouvez utiliser l’option --verbose ou -v :
.\argos_cli.exe test -c ch01 --verbose
Ce qui donnera un rapport de test plus détaillé :
.\argos_cli.exe test -c ch01 --verbose
Testing ARGOS...
Test project D:/HE-Arc_WorkingFilesSYNC/COURS/ARGOS/benoit-le-callennec/BUILD
Start 1: ch01.ch01_ex01_printHelloWorld
1/3 Test #1: ch01.ch01_ex01_printHelloWorld ...***Failed 0.02 sec
Running main() from D:/HE-Arc_WorkingFilesSYNC/COURS/ARGOS/benoit-le-callennec/BUILD/_deps/googletest-src/googletest/src/gtest_main.cc
Note: Google Test filter = ch01.ch01_ex01_printHelloWorld
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from ch01
[ RUN ] ch01.ch01_ex01_printHelloWorld
D:/HE-Arc_WorkingFilesSYNC/COURS/ARGOS/benoit-le-callennec/UnitTests/ch01/ch01_TEST.cpp:25: Failure
Expected equality of these values:
expected
Which is: "hello, world\n"
actual
Which is: "hello, fdsaworld\n"
CHECK ch01_ex01_PrintHelloWorld() output!
[ FAILED ] ch01.ch01_ex01_printHelloWorld (10 ms)
[----------] 1 test from ch01 (10 ms total)
[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (11 ms total)
[ PASSED ] 0 tests.
[ FAILED ] 1 test, listed below:
[ FAILED ] ch01.ch01_ex01_printHelloWorld
1 FAILED TEST
Start 2: ch01.ch01_ex02_printMathCalc
2/3 Test #2: ch01.ch01_ex02_printMathCalc ..... Passed 0.02 sec
Start 3: ch01.ch01_ex03_SomeCalculus
3/3 Test #3: ch01.ch01_ex03_SomeCalculus ...... Passed 0.01 sec
67% tests passed, 1 tests failed out of 3
Total Test time (real) = 0.10 sec
The following tests FAILED:
1 - ch01.ch01_ex01_printHelloWorld (Failed)
Errors while running CTest
Done.
🔴 ch01.ch01_ex01_printHelloWorld
🟢 ch01.ch01_ex02_printMathCalc
🟢 ch01.ch01_ex03_SomeCalculus
All in-one #
Il est possible de forcer la recompilation et les tests des exercices en une seule commande :
.\argos_cli.exe retest
Ce qui équivaut à exécuter les commandes suivantes :
.\argos_cli.exe clean
.\argos_cli.exe build
.\argos_cli.exe test