Maven Cucumber 报告多个 JSON 个文件
Maven Cucumber Reporting Multiple JSON files
我的 POM 目前看起来像,
<groupId>net.masterthought</groupId>
<artifactId>maven-cucumber-reporting</artifactId>
<version>2.8.0</version>
<executions>
<execution>
<id>execution</id>
<phase>verify</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<projectName>ExecuteAutomation</projectName>
<outputDirectory>${project.build.directory}/cucumber-report-html</outputDirectory>
<cucumberOutput>${project.build.directory}/cucumber.json</cucumberOutput>
</configuration>
</execution>
</executions>
</plugin>
这确实会生成报告,但仅包含最后一个功能。我有多个跑步者,所以我想找出其中一个:
一个。如何将多个 JSON 合并为一个报告或
乙。如何在每个测试完成后附加到一个 JSON 文件?
这两个似乎都是一个可行的解决方案,尽管我更喜欢 A,因为看起来我 pom.xml 中只缺少一行来这样做,因为我目前已经生成了多个 JSON 文件
问题是正在使用的版本(即 2.8)不支持多个 JSON 文件。
解决方法是:
<plugin>
<groupId>net.masterthought</groupId>
<artifactId>maven-cucumber-reporting</artifactId>
<version>4.5.0</version>
<executions>
<execution>
<id>execution</id>
<phase>verify</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<projectName>ExecuteAutomation</projectName>
<inputDirectory>${project.build.directory}/jsonReports</inputDirectory>
<outputDirectory>${project.build.directory}/cucumber-report-html</outputDirectory>
<jsonFiles>
<!-- supports wildcard or name pattern -->
<param>**/*.json</param>
</jsonFiles>
</configuration>
</execution>
</executions>
</plugin>
在 https://github.com/damianszczepanik/maven-cucumber-reporting
阅读更多内容
如果你可以 运行 bash 命令并且机器上可能有 jq 可用,也许尝试在具有不同名称的文件中生成报告然后使用 jq 将它们合并回一个文件
我做了类似的事情,虽然我不 运行 并行并且我不依赖任何插件,我 运行 使用 surefire 插件
免责声明:我还没有用 --format 测试报告名称覆盖,所以这部分对你来说可能不同,但想法是一样的
mvn test -Dcucumber.options="--format=json:target/cucumber_test1.json"
mvn test -Dcucumber.options="--format=json:target/cucumber_test2.json"
...
jq -s '[.[][]]' target/cucumber_*.json > target/cucumber.json
我的 POM 目前看起来像,
<groupId>net.masterthought</groupId>
<artifactId>maven-cucumber-reporting</artifactId>
<version>2.8.0</version>
<executions>
<execution>
<id>execution</id>
<phase>verify</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<projectName>ExecuteAutomation</projectName>
<outputDirectory>${project.build.directory}/cucumber-report-html</outputDirectory>
<cucumberOutput>${project.build.directory}/cucumber.json</cucumberOutput>
</configuration>
</execution>
</executions>
</plugin>
这确实会生成报告,但仅包含最后一个功能。我有多个跑步者,所以我想找出其中一个:
一个。如何将多个 JSON 合并为一个报告或
乙。如何在每个测试完成后附加到一个 JSON 文件?
这两个似乎都是一个可行的解决方案,尽管我更喜欢 A,因为看起来我 pom.xml 中只缺少一行来这样做,因为我目前已经生成了多个 JSON 文件
问题是正在使用的版本(即 2.8)不支持多个 JSON 文件。
解决方法是:
<plugin>
<groupId>net.masterthought</groupId>
<artifactId>maven-cucumber-reporting</artifactId>
<version>4.5.0</version>
<executions>
<execution>
<id>execution</id>
<phase>verify</phase>
<goals>
<goal>generate</goal>
</goals>
<configuration>
<projectName>ExecuteAutomation</projectName>
<inputDirectory>${project.build.directory}/jsonReports</inputDirectory>
<outputDirectory>${project.build.directory}/cucumber-report-html</outputDirectory>
<jsonFiles>
<!-- supports wildcard or name pattern -->
<param>**/*.json</param>
</jsonFiles>
</configuration>
</execution>
</executions>
</plugin>
在 https://github.com/damianszczepanik/maven-cucumber-reporting
阅读更多内容如果你可以 运行 bash 命令并且机器上可能有 jq 可用,也许尝试在具有不同名称的文件中生成报告然后使用 jq 将它们合并回一个文件
我做了类似的事情,虽然我不 运行 并行并且我不依赖任何插件,我 运行 使用 surefire 插件
免责声明:我还没有用 --format 测试报告名称覆盖,所以这部分对你来说可能不同,但想法是一样的
mvn test -Dcucumber.options="--format=json:target/cucumber_test1.json"
mvn test -Dcucumber.options="--format=json:target/cucumber_test2.json"
...
jq -s '[.[][]]' target/cucumber_*.json > target/cucumber.json