7 Stimmen

So ermitteln Sie die Anzahl der Testmethoden in einem JUnit TestCase

Gibt es eine Möglichkeit, die Anzahl der Testmethoden in einem Testfall zu ermitteln?

Was ich tun möchte, ist ein Testfall, der mehrere Szenarien testet und für alle diese würde ich die Daten setUp() nur einmal tun. In ähnlicher Weise möchte ich die Bereinigung (tearDown()) einmal am Ende aller Testmethoden durchführen.

Der aktuelle Ansatz, den ich verwende, ist einen Zähler für die Anzahl der Testmethoden zu halten, die in der Datei vorhanden sind und dekrementieren Sie in der TearDown-Methode und tun die Bereinigung, wenn die Anzahl 0 erreicht.

0voto

Aaron Digulla Punkte 308693

Eine Lösung für Junit 3 besteht darin, in jedem Test eine spezielle Setup-Methode aufzurufen, die ein statisches Flag überprüft. Wenn das Flag nicht gesetzt ist, wird das globale Setup ausgeführt. Wenn es gesetzt ist, wird das Setup übersprungen.

Vergewissern Sie sich, dass das globale Setup richtig synchronisiert ist, wenn Sie Tests parallel durchführen wollen.

0voto

SushilG Punkte 515

Verwendung von @Regeln auf TestWatcher können Sie die Anzahl und viele andere Dinge wie den Methodennamen usw. notieren. Sie können diese Methoden außer Kraft setzen und .

@Override   
public Statement apply(Statement base, Description description){
    return super.apply(base, description);  
}

@Override   
protected void failed(Throwable e, Description description) {
    failed.add(description);
    LogUtil.error("[FAILED] "+description.getMethodName()+" [Test Failed]"+e.getMessage());
    super.failed(e, description);
}

@Override   
protected void finished(Description description) {      
    LogUtil.info("[FINISHED] "+description.getMethodName());
    super.finished(description);
}

@Override    
protected void skipped(AssumptionViolatedException e,Description description) {
    LogUtil.error("[FAILED] Test Failed due to Assumption Voilation "+e.getMessage());
    super.skipped(e,description);
}

@Override
protected void starting(Description description) {
    LogUtil.info("-----------------------------------------------------------");
    LogUtil.info("[STARTED]  "+description.getMethodName());
    super.starting(description);
}

@Override
protected void succeeded(Description description) { 
    passed.add(description);
    LogUtil.info("[PASSED] "+description.getMethodName());
    super.succeeded(description);
}

Verwenden Sie in Ihrem Junit-Testfall

@Rule
public TestRule watcher = new TestWatcherChild();

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X