在命令行上选择测试类别

时间:2016-11-11 19:40:20

标签: java maven testing junit

我正在使用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>

2 个答案:

答案 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

编辑:在这种情况下,另一个提供的答案是更好的答案,但配置文件允许各种高级配置。