Surefire не принимает тесты Junit 4 - PullRequest
35 голосов
/ 07 января 2010

По некоторым причинам я не могу заставить плагин Maven 2 Surefire выполнять тестовый класс JUnit 4.

public class SimpleTest {
  @org.junit.Test
  public void simple() {
     System.out.println("foo");
  }
}

Однако, если я изменю этот класс на JUnit-3, например,

public class SimpleTest extends junit.framework.TestCase {
  public void testBar() {
     System.out.println("bar");
  }

  @org.junit.Test
  public void simple() {
     System.out.println("foo");
  }
}

тогда он исполняется. Вот что я сделал:

  • проверенная версия Maven: Apache Maven 2.2.1 (r801777; 2009-08-06 20: 16: 01 + 0100)
  • проверенная версия Surefire: соблюдается этот совет
  • проверенная версия Surefire: проверил баночки Surefire в моем ~/.m2/repository/org/apache/maven/surefire - все они версии 2.4.2 или 2.4.3
  • сделал mvn dependency:tree | grep junit, чтобы убедиться, что я зависел только от версии 4.7

Модуль, в котором у меня возникла эта проблема, не имеет тестов JUnit 3.

Что-то еще мне не хватает?

Ответы [ 11 ]

0 голосов
/ 07 января 2010

Вы настроили свой maven-compile-plugin для правильного уровня компилятора, например:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <configuration>
    <source>1.5</source>
    <target>1.5</target>
  </configuration>
</plugin>

В противном случае maven будет иметь проблемы с аннотациями

...