【问题标题】:How to separate surefire report into 2 or more categories?如何将万无一失的报告分为 2 个或更多类别?
【发布时间】:2012-08-17 10:31:47
【问题描述】:

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

  • 单位
  • 组件
  • 系统

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

如何用maven实现?

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

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

【问题讨论】:

  • 我正在使用带有 jUnit 注释的 maven-surefire-plugin。

标签: junit maven-3 maven-surefire-plugin maven-site-plugin maven-failsafe-plugin


【解决方案1】:

我正在使用带有 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 产生了一个输出。

T E S T S

运行 com.mycompany.mavenproject2.AppTest 单元测试 组件测试 系统测试 测试运行:3,失败:0,错误:0,跳过:0,经过时间:0.031 秒

结果:

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

[万无一失:测试] Surefire 报告目录:C:\Users\mz\Documents\NetBeansProjects\mavenproject2\target\surefire-reports\unit


T E S T S

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

结果:

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

[万无一失:测试] Surefire 报告目录:C:\Users\mz\Documents\NetBeansProjects\mavenproject2\target\surefire-reports\comp


T E S T S

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

结果:

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

[万无一失:测试] Surefire 报告目录:C:\Users\mz\Documents\NetBeansProjects\mavenproject2\target\surefire-reports\sys


T E S T S

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

结果:

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

【讨论】:

  • 您的默认配置需要排除您以后要运行的所有组。因此,在您的顶级配置中(在执行块之前) - 定义一个列出所有组的
猜你喜欢
  • 1970-01-01
  • 2022-11-11
  • 2010-10-18
  • 1970-01-01
  • 1970-01-01
  • 2015-11-08
  • 2013-03-11
  • 2018-04-26
  • 2013-03-24
相关资源
最近更新 更多