Record de temps qu'il faut JUnit tests à exécuter
Je voudrais enregistrer combien de temps cela prend mon test JUnit pour exécuter un programme. J'ai un grand nombre de tests dans différentes classes de test, et je voudrais savoir combien de temps chaque méthode de test nécessaire pour exécuter.
Je peux changer la structure d'héritage ou d'annoter des méthodes différemment, mais je voudrais éviter d'avoir à ajouter du code dans la méthode de test lui-même et aussi à l'intérieur de l'avant/après sont des méthodes qui sont utilisées pour l'installation d'essai de logique métier.
Avez-vous l'intention d'exécuter ce dans un outil de construction, par exemple Maven? Ou voulez-vous Eclipse ou similaires?
OriginalL'auteur oneself | 2013-07-09
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser JUnit Chronomètre de la règle et de redéfinir ses méthodes prévues dans la JUnit documentation de l'API et le temps imprimé sur console ou un fichier journal pour chaque test, en incluant une ligne de code dans chacun de vos cas de test de la classe.
Créer votre Client Chronomètre classe (Échantillon)
Ont un ParentTestClass créé avec de ligne et de chaque de votre classe de test hériter du parent de la classe de test:
Classes enfant hérite de parent. Aucun autre changement dans les classes Enfant, avant ou après les méthodes.
Ou
Inclure cette ligne dans chaque classe de Test
Échantillon De La Classe De Test:
JUnit référence de l'API:
http://junit.org/apidocs/org/junit/rules/Stopwatch.html
Exemple De Sortie
Il sera également le moment de l'émission de l'échec et ignorées des cas de test.
OriginalL'auteur javaJavaJava
Essayez d'utiliser @Before et @Après.
Une méthode annotée avec @Avant ou @Après s'exécute avant ou après le test.
Faites un parent de cas de test avec ces deux méthodes, et pour chaque classe de test que vous avez, étendre le parent de cas de test.
Si le test a ses propres avant/après les méthodes, comment puis-je être assuré que le calendrier méthodes d'exécuter immédiatement avant et après le test? Sinon, je peut aussi mesurer le temps que prend le test avant/après les méthodes à exécuter.
Si donc, vous devez construire votre propre fonction de chronométrage. Vous devez déclencher et arrêter le chronométrage de la fonction par vous-même.
OriginalL'auteur Heejin
Vous pouvez également créer un @à la Règle et instancier le TestWatcher classe. C'est ce qui a fonctionné pour moi. Ce qui est défini dans une classe qui étend la classe TestCase.
DBTestCase extends TestCase
extrait de code dans CompositeWithTeardownDBUnitTest
Et le test JUnit classes d'étendre cette classe CompositeWithTeardownDBUnitTest.
OriginalL'auteur user3663214
Créer votre propre
TestWatcher
de mise en œuvre qui attire chaque méthode de test en cours d'exécution. À l'aide de GoyaveChronomètre
vous permet de mesurer le temps pour chaque test:Puis ajouter JUnit
@Rule
annotation avec votreTimeTestWatcher
pour chaque classe de test:OriginalL'auteur jlogics
En plus les réponses existantes, vous pouvez utiliser une règle pour le nom de test avec
Before
etAfter
méthodes pour afficher le nom de la méthode sur le log. Comme ceci:Sera de sortie:
OriginalL'auteur Utku Özdemir
Vous pouvez créer un JUnit Règle que le temps entre le avant/après des appels. Cette règle pourrait être utilisé comme une instance et/ou les règles de classe pour vous obtenir le temps pour chaque méthode de test ainsi que pour chaque classe de test.
OriginalL'auteur cjstehno
Si vous utilisez @Before et @Après les annotations et de noter les cas de test junit de début et de fin des temps. Puis la recherche de la différence de deux horodateurs devrait vous donner le cas de test temps d'exécution. Quelque chose comme ceci:
OriginalL'auteur Juned Ahsan