Записывать информацию в JUnit Suite - PullRequest
1 голос
/ 09 июня 2010

В настоящее время я пытаюсь записать в файл журнала общее количество неудачных тестов из JUnite Suite.

Мой тестовый набор определяется следующим образом:

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

Я попытался определить правило, которое увеличило бы общее количество ошибок в случае неудачи теста, но, видимо, мое правило никогда не вызывалось.

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

    public void succeeded(FrameworkMethod method) {
    }
};

Любые идеи о том, что я должен сделать, чтобы добиться такого поведения?

1 Ответ

1 голос
/ 09 июня 2010

Следующий код работает для меня. Я подозреваю, что вы не объявляете errors статическим.

Учтите, что JUnit создает новый экземпляр прибора перед выполнением каждого метода тестирования.

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();
 }

}
...