Jam*_*eld 10 java junit maven-2 unit-testing annotations
我目前正在开发一个在所有模块中广泛使用JUnit4的项目.我们使用Maven2来构建项目,使用Hudson进行持续集成.该项目是在Java 1.5下构建和运行的.
我们最近添加了大量的单元测试,这些测试有时需要,但不希望在构建过程中运行(但同一项目中的其他单元测试).
我想知道是否有某种注释可以应用于测试,或者某些可以对Maven进行的配置会忽略生成在某个包或某个测试类中的单元测试?
可能只是将这些特定测试放在一个可以通过main运行的普通类中,但这并不理想.
谢谢你的建议
cet*_*nar 17
您可以配置maven-surefire-plugin.
例如:
<project>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.4.2</version>
<configuration>
<excludes>
<exclude>**/TestCircle.java</exclude>
<exclude>**/TestSquare.java</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
编辑:
另一个解决方案是定义配置文件,其中所有测试将运行,例如由哈德森.在开发模式中,您可以使用所有测试的子集来加速开发(或者所有测试可能都在默认配置文件中,在dev配置文件中选择测试 - 因此您需要使用-PprofileName属性运行maven ).这个例子更适合需要运行loger的集成测试.
有一个"忽略"注释,但添加它们是手动工作,不确定是否有帮助.
它可以用于测试方法或整个类
@Ignore("not ready yet") @Test public void testSomething() {...
Run Code Online (Sandbox Code Playgroud)
要么
@Ignore public class SomeTest {
@Test public void testSomething() {...
}
Run Code Online (Sandbox Code Playgroud)
[]]