0

我想将测试分为 3 个不同的类别:

  • 单元
  • 组件
  • 系统

然后我想在不同的阶段分别运行它们,并将这些测试的执行结果显示为 3 个不同的肯定报告,或者可能是一个,但测试结果分为 3 个不同的类别。

如何用maven实现它?

我知道我可以使用故障安全 Maven 插件单独运行测试。所以这不是问题。

唯一的问题是我可以将报告分为 3 类。

4

1 回答 1

3

我正在使用带有 junit 类别的 maven-surefire-plugin。

    <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.12.2</version>
            <executions>
                <execution>
                    <id>unit-tests</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <groups>com.mycompany.mavenproject2.UnitTest</groups> 
                        <reportsDirectory> ${project.build.directory}/surefire-reports/unit</reportsDirectory> 
                        <reportNameSuffix>UNIT</reportNameSuffix>      
                    </configuration>     
                </execution>
                <execution>
                    <id>comp-tests</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <groups>com.mycompany.mavenproject2.ComponentTest</groups>
                        <reportsDirectory> ${project.build.directory}/surefire-reports/comp</reportsDirectory> 
                        <reportNameSuffix>COMPONENT</reportNameSuffix>                
                    </configuration>     
                </execution>
                <execution>
                    <id>sys-tests</id>
                    <goals>
                        <goal>test</goal>
                    </goals>
                    <configuration>
                        <groups>com.mycompany.mavenproject2.SystemTest</groups>
                        <reportsDirectory> ${project.build.directory}/surefire-reports/sys</reportsDirectory>
                        <reportNameSuffix>SYSTEM</reportNameSuffix>                  
                    </configuration>     
                </execution>
            </executions>
        </plugin>

它工作正常,除了它首先运行所有测试而不是将它们分成类别。 如何消除这种行为?

Build 产生了一个输出。

测试

运行 com.mycompany.mavenproject2.AppTest UnitTest ComponentTest SystemTest 测试运行:3,失败:0,错误:0,跳过:0,经过时间:0.031 秒

结果 :

测试运行:3,失败:0,错误:0,跳过:0

[surefire:test] Surefire 报告目录:C:\Users\mz\Documents\NetBeansProjects\mavenproject2\target\surefire-reports\unit


测试

并发配置为 parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false Running com.mycompany.mavenproject2.AppTest UnitTest 测试运行:1,失败:0,错误:0,跳过:0,经过时间:0.003秒

结果 :

测试运行:1,失败:0,错误:0,跳过:0

[surefire:test] Surefire 报告目录:C:\Users\mz\Documents\NetBeansProjects\mavenproject2\target\surefire-reports\comp


测试

并发配置为 parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false Running com.mycompany.mavenproject2.AppTest ComponentTest 测试运行:1,失败:0,错误:0,跳过:0,经过时间:0.003秒

结果 :

测试运行:1,失败:0,错误:0,跳过:0

[surefire:test] Surefire 报告目录:C:\Users\mz\Documents\NetBeansProjects\mavenproject2\target\surefire-reports\sys


测试

并发配置为 parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false Running com.mycompany.mavenproject2.AppTest SystemTest 测试运行:1,失败:0,错误:0,跳过:0,经过时间:0.003秒

结果 :

测试运行:1,失败:0,错误:0,跳过:0

于 2012-08-17T12:10:40.263 回答