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