Comment gérer les tests non unitaires dans un projet?

9

J'ai un code dans mon projet que j'appelle personnellement testsce ne sont pas des tests unitaires. Ils sont destinés à être exécutés et le résultat doit être évalué par un humain. Je l'ai fait parce que je fais un moteur physique et pendant le développement, j'avais besoin de voir ce que je fais. J'ai donc fait un simulationpackage dans mon module de test. Il s'agit techniquement de tests unitaires car les simulations utilisent la bibliothèque de tests unitaires mais je ne veux pas tous les exécuter comme mes tests unitaires réels.

Ce que je voudrais faire, c'est différencier ces tests spéciaux de mes tests unitaires parce que je veux exécuter tous les tests unitaires facilement. Je pense que c'est un peu comme des tests fonctionnels. Avez-vous déjà rencontré un cas où vous avez dû préparer votre demande pour un test fonctionnel? Où cette préparation de test fonctionnel (essentiellement ce que sont mes simulations) devrait-elle être placée dans le projet et comment les distinguer des tests unitaires?

Je suis en Java, donc je pourrais changer toutes mes signatures de méthodes de @Test public void myNamedTest()à public static void main(String[] args)mais ce serait laborieux et moins pratique pour moi d'utiliser mes simulations.

J'utilise junitdans un gradleprojet. Toute solution créant un dossier de test spécial avec gradleest la bienvenue.

Hiver
la source
2
Je pense que vous parlez d'un banc d'essai où vous pouvez exécuter des tests ad hoc. Ceux-ci existent depuis aussi longtemps que je me souvienne (30 ans et plus) - peut-être même avant. Ils siègent généralement dans un projet distinct qui peut accéder à la bibliothèque ou autre chose, mais vous pouvez le structurer comme vous le souhaitez.
Robbie Dee
3
Les termes tests unitaires / d'intégration / fonctionnels décrivent la portée du test: ce qui est testé. Cela est complètement indépendant de la façon dont ces tests sont exécutés, par exemple les tests manuels et les tests automatisés. Il peut y avoir des tests d'acceptation automatisés et des tests unitaires manuels, et tout le reste. Donc, si vous utilisez JUnit pour exécuter des tests fonctionnels manuels, c'est très bien - gardez-les simplement séparés de vos tests automatiques afin qu'ils ne soient pas exécutés par défaut.
amon

Réponses:

10

Il ressemble aux versions ultérieures des catégories de tests de prise en charge Junit. Ceux-ci peuvent être utiles pour classer chaque test. Ensuite, lorsque l'automatisation de la construction s'exécute, elle peut inclure ou exclure ces tests en fonction de la catégorie.

Que vous souhaitiez mélanger ces tests aux tests unitaires est une question de préférence organisationnelle. On peut vouloir créer un projet de «banc d'essai» distinct pour séparer les tests unitaires réguliers des tests plus spécialisés.

https://dzone.com/articles/closer-look-junit-categories

Jon Raynor
la source