我正在使用JUnit的类别将我的测试分成不同的类别,并使用maven编译并运行我的测试(surefire和failsafe)。
问题是,如何从命令行中选择执行哪种类型的测试?
类似于:mvn clean install -DloadTests。
我的故障安全插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${failsafe.plugin.version}</version>
<configuration>
<!--Exclude load tests by default-->
<excludedGroups>com.test.lib.categories.LoadTestCategory</excludedGroups>
</configuration>
</plugin>
答案 0 :(得分:1)
根据the documentation,用户属性称为groups
。因此,这应该有效:
mvn clean install -Dgroups=com.test.lib.categories.LoadTestCategory
答案 1 :(得分:1)
您可以使用配置文件执行此操作,并在其中指定插件配置。
<profiles>
<profile>
<id>noLoadTests</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${failsafe.plugin.version}</version>
<configuration>
<!--Exclude load tests by default-->
<excludedGroups>com.test.lib.categories.LoadTestCategory</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
然后运行maven
mvn test -PnoLoadTests
如果您只需要排除/包含一个特定类别,您还可以在配置文件中定义属性并在其中使用该属性。有关详细信息,请查看here
编辑:在这种情况下,另一个提供的答案是更好的答案,但配置文件允许各种高级配置。