2010-11-24 158 views
3

我正在为使用Scala(JUnit 4)的Java项目编写单元测试用例。我正在使用Maven运行测试。忽略Maven/Scala单元测试文件

我已经写了一个src/test/scala/com.xxx.BaseTest类用于测试,以提供一些常用功能(@BeforeClass等),但没有实际的@Test个案。

每当我在命令行上使用mvn运行测试时,它都会坚持尝试在BaseTest类中查找测试,并且因为没有任何测试而出现错误。

除了使用@Ignore之外,有什么办法可以让Maven/Scala/Surefire不尝试运行BaseTest类吗?添加@Ignore并不是什么大问题,但我的测试运行结果显示比我实际使用“跳过:1”标签更多的测试。

UPDATE:我找到了解决方案。我将BaseTest更名为Base; Maven现在忽略它。有没有其他方法?

回答

1

您可以重命名基础测试类不要有*测试结束,例如BaseTestCase.java。这是我会推荐的。

最有可能的行家执行与surefire plugin测试,因此或者你只是可以配置万无一失插件跳过BaseTest.java。我认为,默认情况下,surefire假定所有以*Test结尾的类都是测试类。像这样的pom.xml

<build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-surefire-plugin</artifactId> 
     <version>2.6</version> 
     <configuration> 
      <excludes> 
      <exclude>**/BaseTest.java</exclude> 
      </excludes> 
     </configuration> 
     </plugin> 
    </plugins> 
    </build> 
+0

我尝试了第二个建议,id没有工作。也许与它是一个Scala测试文件有关。 – Ralph 2010-11-24 20:48:20