web-dev-qa-db-fra.com

Les suites de tests sont-elles considérées comme obsolètes dans JUnit5?

J'essaie de créer des suites de tests avec JUnit5. Après quelques recherches, je n'ai pas pu conclure s'il s'agissait d'une fonctionnalité prise en charge ou non.

Le guide utilisateur officiel ne mentionne que les suites en ce qui concerne la rétrocompatibilité avec JUnit 4.

Voici comment cela a été fait dans JUnit 4:

@RunWith(Suite.class)
@SuiteClasses({Test1.class, Test2.class})
public class TestSuite {
}

Cela signifie-t-il que les suites de tests sont considérées comme obsolètes maintenant, ou le même concept est-il toujours disponible sous un autre nom?

19
Nebula

Cela signifie-t-il que les suites de tests sont désormais considérées comme obsolètes ou le même concept est-il toujours disponible sous un autre nom?

Amer Suite Réponse:

Il existe en fait un support pour les suites de tests dans JUnit 5, mais ce n'est certainement pas ce que vous recherchez. Cependant, l'équipe JUnit travaille sur quelque chose qui répondra probablement à vos besoins.

Réponse détaillée:

Depuis JUnit 5.2, le seul support intégré pour suites est via le JUnitPlatform Runner (enregistré via @RunWith(JUnitPlatform.class)). Ce coureur lance en fait la plate-forme JUnit (a.k.a., infrastructure JUnit 5) et vous permet d'exécuter des tests sur différents modèles de programmation tels que JUnit 4 et JUnit Jupiter. Il vous permet également de sélectionner diverses choses (par exemple, les classes, les packages, etc.) et de configurer les filtres d'inclusion et d'exclusion (par exemple, pour les balises ou les moteurs de test).

Le problème avec le runner est qu'il ne peut pas être exécuté directement sur la plate-forme JUnit. Il peut seulement être exécuté en utilisant JUnit 4 par lui-même. Cela signifie que vous perdez toutes les capacités de génération de rapports de la plate-forme JUnit car les informations sont perdues lors de la traduction de la plate-forme JUnit vers JUnit 4.

En résumé, vous pouvez techniquement utiliser le runner JUnitPlatform pour exécuter une suite à l'aide de JUnit 5, et les tests s'exécuteront, mais les rapports et l'affichage dans un IDE seront sous-optimaux.

Du côté positif, l'équipe JUnit prévoit de fournir une prise en charge intégrée des suites dans JUnit 5 qui ne souffre pas des lacunes du runner JUnitPlatform pour JUnit 4. Pour plus de détails, consultez tous les problèmes attribués à la - étiquette "suites" sur GitHub .

De plus, il existe déjà une branche de fonctionnalité que vous pouvez vérifier qui peut être consommée dans une build Maven ou Gradle via JitPack .

Cordialement,

Sam (Committer principal JUnit 5)

11
Sam Brannen