Comment organisez-vous les tests dans un projet Java modulaire?
Je crée une construction modulaire (en utilisant module-info.java) sur GitHub, mais lors de l'ajout d'un module-info.java aux modules que je veux modulaires, aucun test ne peut être exécuté...
Comment puis-je y parvenir?
J'utilise les versions suivantes:
- junit.jupiter version 5.3.0 (la première prise a également échoué avec la version 5.2.0)
- maven-compiler-plugin version 3.8.0 (la première prise a également échoué avec la version 3.7.0)
- maven-surefire-plugin version 2.22.0 (la première prise a également échoué avec la version 2.21.0)
Une erreur typique des tests défaillants ressemble à:
Java.lang.refléter.InaccessibleObjectException: Impossible de faire COM.github.jactor.augmenter.commun.dto.UserDtoTest () accessible: module jactor.augmenter.commons ne " ouvre pas COM.github.jactor.augmenter.commun.dto " au module sans nom @65e98b1c
1 answers
Bienvenue à Essais Dans Le Monde Modulaire!
Quel genre de tests voulez-vous écrire?
Black-box tests : Créez un projet test uniquement (pas de répertoire "src/main") et déclarez un "src/test/java/module-info.java" descripteur de module.
White-box tests : Comme c'était à partir du jour 1, vous devez "mélanger"/fusionner/ombrer vos classes de test dans vos classes principales ou vice versa. Ici, vous avez principalement deux façons d'y parvenir:
- "de la compilation modulaire sources principales " et "patch plain test sources" au test-runtime avec quelques "options JVM supplémentaires piratant le système de modules" pour exécuter des tests.
- "compiler les sources de test modulaires" et "patcher les sources principales modulaires" au moment de la compilation pour exécuter les tests.
Blog
Https://sormuras.github.io/blog/2018-09-11-testing-in-the-modular-world
Exemples
Plan des travaux en cours https://github.com/sormuras/sandbox/tree/master/sors-modular-testing-blueprint
Les tests d'Intégration, à partir de "modulaire-monde" à https://github.com/sormuras/junit-platform-maven-plugin/tree/master/src/it