Surefire-report-plugin生成报告包含最后的测试执行结果

时间:2019-01-28 08:37:19

标签: automated-tests testng report aggregate maven-surefire-plugin

我正在尝试使用maven-surefire-report-plugin生成汇总的surefire报告。但是问题是该报告仅包含以前的执行结果。这意味着如果我第N次执行测试,它将显示第(N-1)次执行结果。当我从mvn'clean install'命令清除所有目标时,执行结果将为0。

Surefire汇总报告参考$ {basedir} / target / surefire-reports下生成的TEST- .xml文件以创建报告。当前,每个模块下都生成TEST-TestSuite.xml文件。因此,将汇总参数值设置为true,并通过在每个模块中引用这些Test- .xml文件来生成汇总报告。

具有以下单独模块的项目测试设计。

├── 1.Scenario
|   ├── 1.1 Sub- scenario
|   |   ├── 1.1.1-test -scenario
|   |   |   ├── src/test
|   |   |   |  ├── pom.xml
|   |   |   |  ├── target
|   |   |   |  |  ├──Surefire reports
|   |   |   |  |  | ├──TEST-*.xml
|   |   |   |  |  | |
├── target
├── aggregate report (surefire.html)
├── pom.xml (parent)

maven-surefire-plugin已在模块pom中进行配置,并且将为每个模块分别创建Test- .xml。 maven-surefire-report-plugin已在父pom上进行配置,并假设通过在每个模块中引用Test- .xml来生成所有模块的汇总报告。

<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-surefire-report-plugin</artifactId>
   <version>2.4.2</version>
   <inherited>true</inherited>
   <configuration>
      <aggregate>true</aggregate>
      <outputDirectory>${basedir}/target/aggregate-surefire-report</outputDirectory>
   </configuration>
   <executions>
      <execution>
         <phase>install</phase>
         <goals>
            <goal>report</goal>
         </goals>
      </execution>
   </executions>
</plugin>

预期结果是当前执行的汇总报告,但实际结果给出了先前的执行结果。

谁知道为什么会出现此问题?

1 个答案:

答案 0 :(得分:-1)

我发现的解决方案是分别执行Maven目标。 我的意思是“ mvn干净测试”,然后“ mvn surefire-report:仅报告”,这将生成我们想要运行的报告。