So gruppieren/kategorisieren große Anzahl von JUnit-tests.
In unserem Projekt haben wir derzeit eine große Anzahl von (junit -) tests sind in drei Rubriken unterteilt: unit, integration, wicket.
Will ich jetzt Gruppe diese tests, so dass ich laufen kann nur eine (oder zwei) Kategorien. Das einzige was ich gefunden habe sind junit-test-suites und-Kategorien, wie hier beschrieben: http://www.wakaleo.com/component/content/article/267
Mein problem ist, ich will nicht zu erklären, jeder einzelne test in die Test-Anzüge mit @SuiteClasses.
Ist es ein Weg, um fügen Sie die suite Klassen mit wildcards /Muster?
InformationsquelleAutor maze2k | 2011-03-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorausgesetzt, mein Verständnis für die Frage richtig ist, kann es eigentlich getan werden mithilfe von JUnit. Der folgende code verwendet wurde mit JUnit 4.11 und erlaubt uns aufteilen, alle tests in 2 Kategorien: "allgemein" und Integration.
IntegrationTestSuite.java
UnitTestSuite.java
IntegrationTestCategory.java
Den ersten Probe-test unten ist nicht versehen mit einer Kategorie, also alle seine test-Methoden aufgenommen werden, die bei der Ausführung der UnitTestSuite und ausgeschlossen beim laufen IntegrationTestSuite.
Nächste Probe ist markiert als Integration test auf der class-Ebene, das bedeutet, dass sowohl seine test-Methoden ausgeschlossen, die bei der Ausführung der UnitTestSuite und in IntegrationTestSuite:
Und die Dritte Probe demos eine test-Klasse mit einer Methode, die nicht kommentiert und der andere markiert mit der Integration der Kategorie.
InformationsquelleAutor Vitali Tchalov
Versuchen Sie es mit ClasspathSuite
Ich hatte auch das gleiche problem wo ich hatte mehr als 5500 jUnit-tests. Ich kategorisiert und dann in 3 Gruppen erstellt und 3 Suiten mit Hilfe der oben jUnit-Erweiterung. Seine große.
InformationsquelleAutor Rikash
Könnte man Sie in verschiedenen Paketen. Die meisten IDEs haben eine Möglichkeit zum ausführen aller tests in einem Paket. Es ist auch ziemlich einfach zu finden, werden alle test-Klassen in einem Paket mit einem shell-Skript zur Ausführung von tests als Teil eines build-oder was auch immer. Ich weiß nicht, ob es einen Weg gibt, es zu tun mit ant, aber ich könnte mir vorstellen so.
TestNG können Sie tag tests in bestimmten Gruppen und dann die Gruppen. Klingt wie genau das, was Sie wollen, abgesehen von der Tatsache, dass es nicht JUnit!
Könnte man Missbrauch JUnit-Annahme-Mechanismus zu tun, was Sie wollen: ein system-Eigenschaft für jede Gruppe von tests, und dann beginnen Sie jeden test unter der Annahme, dass die entsprechende Eigenschaft gesetzt ist. Laufen alle tests läuft alles, aber alles, was Sie nicht wollen, werden ignoriert.
InformationsquelleAutor Tom Anderson
Selbst wenn Sie JUnit-Kategorien, die Sie noch nicht in der Lage sein, um die Verwendung von Platzhaltern/Muster, da Kategorien sind Anmerkungen, die Java-Typen.
Wie bereits von anderen Kommentatoren, das ist genau der Grund, warum TestNG verwendet strings zum definieren von Gruppen anstelle von Anmerkungen:
Nachdem Sie Ihre Gruppen definiert haben, auf diese Weise, Sie können einschließen und ausschließen von Gruppen mithilfe von regulären Ausdrücken (z.B. "Datenbank.*", "front-end.*", etc...).
TestNG ist in der Tat nicht basierend auf JUnit, aber es ist sehr einfach zu konvertieren alle Ihre JUnit-tests, TestNG. Hier sind zwei blog-Beiträge geben einen überblick über den Prozess:
http://beust.com/weblog/2011/01/04/one-click-test-conversions/
http://beust.com/weblog/2011/02/07/are-your-unit-tests-talking-to-each-other-behind-your-back/
InformationsquelleAutor Cedric Beust
Sehen Junit-Kategorie oder Wie alle tests ausführen Zugehörigkeit zu einer bestimmten Kategorie in JUnit 4
InformationsquelleAutor Andrzej Jozwik
haben Sie sich überlegt mit TestNG?
Diese basiert auf JUnit aber viel mächtiger: Siehe Vergleich.
Gruppierung ist einfach.
Tranforming tests von JUnit auf TestNG einfach sein sollte.
Alternativ könnten Sie 3 ant-Skripten, die jeweils Ihre unit-tests, aber diese ist weniger flexibel.
Vereinbart. TestNG ist reif genug ist, um eine faire drop-in-Ersatz.
Texas Tom für die Stimmabgabe wieder, würde ich auch gerne wissen, die Argumentation hinter den downvote.
TestNG basiert nicht auf JUnit. Build-tools machen es einfach genug, um nur eine Teilmenge der tests, zum Beispiel basierend auf package/Klasse Namenskonventionen. Also, diese Anforderung allein rechtfertigen nicht die Portierung aller vorhandenen tests, TestNG.
Nein? Bitte werfen Sie einen Blick auf die Abhängigkeiten in der pom von testng! Wie auch immer, ich schlug auch vor das ant-Lösung, aber TestNG würde meiner Meinung nach besser sein.
InformationsquelleAutor Stijn Geukens