Aufzeichnung der Zeit, die es dauert JUnit-tests ausführen
Ich möchte aufzeichnen, wie lange es dauert, mein JUnit-test ausgeführt werden, die programmgesteuert. Ich habe eine große Anzahl von tests in verschiedenen test-Klassen, und ich möchte, um herauszufinden, wie lange jede einzelne test-Methode ausgeführt.
Ich ändern kann, die Vererbung von Struktur oder kommentieren von Methoden anders, aber ich möchte vermeiden, fügen Sie code hinzu, der innerhalb der test-Methode selbst und auch im vorher - /nachher-Methoden, die verwendet werden, um setup-test von business-Logik.
- Beabsichtigen Sie, diese laufen in einem build-tool, beispielsweise Maven? Oder wollen Sie Eclipse oder ähnliches?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie die JUnit-Stoppuhr-Regel und überschreiben Sie die Methoden in der JUnit-API-Dokumentation und die Zeit gedruckt auf Konsole oder log-Datei für jeden test nur durch, darunter eine Zeile code in jede einzelne test-case-Klasse.
Erstellen Sie Ihre Kunden StopWatch-Klasse (Probe)
Haben eine ParentTestClass erstellte Zeile und jedes der test-Klasse, erbt die übergeordneten test-Klasse:
Kind-Klassen erbt Eltern. Keine andere änderung in Kind-Klassen oder vor oder nach Methoden.
Oder
Fügen Sie dieser Zeile in jedem der Test-Klasse
Probe-Test-Klasse:
JUnit API Referenz:
http://junit.org/apidocs/org/junit/rules/Stopwatch.html
Beispiel-Ausgabe
Es wird auch zeigen, Zeit für Fehler und ausgelassenen Testfälle.
Versuchen mit @Before und @After.
Eine Methode annotiert mit @Before oder @After ausgeführt wird, bevor oder nachdem die Probe.
Sie können auch eine @ - Regel und instanziieren Sie die TestWatcher Klasse. Das ist was für mich gearbeitet. Dieser wird in einer Klasse definiert, erstreckt TestCase.
DBTestCase extends TestCase
code-snippet in CompositeWithTeardownDBUnitTest
Und die JUnit-test-Klassen nur erweitern diese Klasse CompositeWithTeardownDBUnitTest.
Erstellen Sie Ihre eigenen
TestWatcher
Umsetzung, die fängt jeder test-Methode ausgeführt. Mit GuaveStoppuhr
können Sie die Zeit Messen, die für jeden test:Und fügen Sie JUnit
@Rule
annotation mit IhrenTimeTestWatcher
für jede test-Klasse:Zusätzlich zu den bestehenden Antworten, können Sie eine Regel für test-name zusammen mit
Before
undAfter
Methoden, um display-Methode, die Namen auf-log. Wie diese:Ausgabe:
Könnten Sie eine JUnit-Regel, die aufzeichnen würde, die Zeit zwischen vor/nach anrufen. Diese Regel kann verwendet werden als eine Instanz und/oder Klasse Regel bekommen Sie die Zeit, die für jede einzelne test-Methode sowie für jede test-Klasse.
Wenn Sie mit @Before und @After Annotationen und beachten Sie die junit-testcase start-und Endzeit. Dann finden Sie die Differenz von zwei timestamps sollten geben Sie den testcase-Ausführung. So etwas wie dieses: