Dans le cadre du projet 1920_IUHDCB332
Les classe de test DynamicCompilationTest
et DynamicOutputTest
définissent deux variables qu'elle utilise pour trouver les scénarios de test:
TEST_SOURCE_FILES_DIR
: indique où chercher les fichiers de code source SLIPSOURCE_FILES_EXTENSIONS
: indique quelles sont les extensions possibles des fichiers de code source SLIP
Tout fichier qui respectera ces deux conditions sera utiliser dans un scénario de test.
De plus, pour la classe DynamicCompilationTest
, le nom du répertoire parent direct du fichier a de l'importance:
- Si il s'appelle "ok" (en minuscule): le test unitaire s'attends à une compilation fructueuse
- Si il s'appelle "ko" (en minuscule): le test unitaire s'attends à un échec de compilation
- Sinon la suite de tests échoue et indique le fichier qui ne respecte pas les deux conventions ci-dessus
De même, pour la classe DynamicOutputTest
, elle s'attend à trouver à côté de chaque fichier ".slip" un fichier ".nbc" qui correspondent. Ce fichier ".nbc" correspond au résultat attendu en sortie de la compilation du fichier ".slip".
En cas de test raté, IntelliJ Idea permet de consulter un diff très compréhensible en cliquant sur "Voir les différences" dans la console du résultat des tests.
Par exemple, les trois fichiers "basic.slip", "basic.map" et "basic.nbc" correspondent respectivement à un fichier source dont on veut tester la compilation, un fichier map importé par le fichier source et un fichier contenant le résultat attendu de la compilation.
La classe va générer et exécuter un test unitaire pour chacun des fichiers trouvés et produire un rapport individuel à chaque test.
Ces tests requièrent JUnit 4.11 ou supérieur.
J'utilise la librairie commons-io
de Apache aussi.
Penser à ajouter ces dépendances dans votre pom.xml
(example ci-dessous).