我正在使用Maven Surefire插件来运行一组特定的测试。 例如:
package suite;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import suite.slow.EvenSlowerClassTest;
import suite.slow.SlowClassTest;
@RunWith(Suite.class)
@Suite.SuiteClasses({
SlowClassTest.class,
EvenSlowerClassTest.class
})
public class SlowSuite {
}
使用maven命令
test -DrunSuite=**/FastSuite.class -DfailIfNoTests=false
我可以明确地运行FastSuite或SlowSuite测试套件,但是,如何运行我拥有的所有测试套件或测试套件中未涵盖的所有测试?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includes>
<include>${runSuite}</include>
</includes>
</configuration>
</plugin>
答案 0 :(得分:0)
我在一些项目中所做的是在<profiles>
中使用pom.xml
来激活特殊的测试套件。如果没有激活的配置文件,所有测试都将使用mvn test
运行(我希望这是您正在寻找的)
像这样:
<profile>
<id>commit-test</id>
<build>
<plugins>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12.3</version>
<configuration>
<groups>com.test.CommitTest</groups>
</configuration>
</plugin>
</plugins>
</build>
以类似注释的方式测试类:
@Category(CommitTest.class)
public class SomeTestClass {
}
我不知道它是否适用于@Suite
和@RunWith
,但如果您的测试套件不是太多类,那么改变它应该不是一件困难的工作。
命令:mvn clean test -Pcommit-test
答案 1 :(得分:0)
我认为您可以尝试使用-DrunSuite = ** / * Suite.class