如何告诉Maven2不测试测试源文件夹中的非@Test-annotated类?

时间:2011-12-09 08:42:18

标签: java testing maven maven-2 junit

刚出现一个奇怪的错误。使用JUnit和Maven 3.0.3处理项目我在test / src / java文件夹中创建了一个测试类 - ClassifierUtilTest.java,带有@Test - 带注释的方法和东西,以及两个实用程序类,用于测试env(一个用于绕过私有可见范围的静态方法很少,一个用于测试接口的模拟)。

它在Maven 3.0.3(mvn test)和Eclipse 3.7(运行/ JUnit测试)中运行良好,但是当其他人尝试使用Maven 2.2.1“mvn test”它时它失败了。显然它试图将这些util类视为测试类,并且由于'no @Test - 带注释的方法'和'多个构造函数'而失败。

这不是JUnit错误(至少它不应该是,maven依赖是相同的,junit:junit:4.9),所以它似乎是严格的maven或maven-surefire-plugin错误。我想知道Maven 2.2.1是否存在一些广为人知的解决方法?

1 个答案:

答案 0 :(得分:12)

default之前的{p> maven-surefire-plugin会运行所有具有Test前缀或后缀(如您的ClassifierUtilTest)和TestCase后缀的类。只需将名称更改为ClassifierTestUtil即可。

您还可以在pom.xml中排除某些文件/目录,请参阅Inclusions and Exclusions of Tests

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.11</version>
  <configuration>
    <excludes>
      <exclude>**/ClassifierUtilTest.java</exclude>
    </excludes>
  </configuration>
</plugin>