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

r3m*_*bol 3 java testing junit maven-2 maven

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

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

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

Tom*_*icz 12

maven-surefire-plugin通过默认运行所有具有类Test前缀或后缀(像你这样ClassifierUtilTest)和TestCase后缀.只需将名称更改为ClassifierTestUtil,您就可以了.

您还可以排除某些文件/目录pom.xml,请参阅测试的包含和排除:

<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>
Run Code Online (Sandbox Code Playgroud)