2010-06-09 3 views
1

J'essaie actuellement d'écrire dans un fichier journal le nombre total de tests échoués d'une suite JUnite.Informations sur le journal dans une suite JUnit

Mon testsuite est défini comme suit:

@RunWith(Suite.class) 
@SuiteClasses({Class1.class, Class2.class etc.}) 
public class SimpleTestSuite {} 

J'ai essayé de définir une règle qui augmenterait le nombre total d'erreurs lorsqu'un test échoue, mais apparemment ma règle est jamais appelée.

@Rule 
public MethodRule logWatchRule = new TestWatchman() { 
    public void failed(Throwable e, FrameworkMethod method) { 
     errors += 1; 
    } 

    public void succeeded(FrameworkMethod method) { 
    } 
}; 

Des idées sur ce que je devrais faire pour atteindre ce comportement?

Répondre

1

Le code suivant fonctionne pour moi. Je suppose que vous ne déclarez pas errors comme statique.

Considérez que JUnit crée un new instance de l'appareil avant d'exercer chaque méthode d'essai.

public class WatchmanExample { 

private static int failedCount = 0; 

@Rule 
public MethodRule watchman = new TestWatchman() { 
    @Override 
    public void failed(Throwable e, FrameworkMethod method) { 
    failedCount++; 
    } 
}; 

@Test 
public void test1() { 
    fail(); 
} 

@Test 
public void test2() { 
    fail(); 
} 

} 
Questions connexes