如何在空手道 API 自动化项目中集成 Allure Report

How to integrate Allure Report in karate API automation project

我们在各种项目中大量使用空手道,尽管使用 karate Reports 生成的报告比任何人都需要的多。我仍然有兴趣将 Allure 融入其中。

添加了 allure-junit4 依赖项并添加了 allure 侦听器

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.20</version>
                <configuration>
                    <argLine>
                        -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"
                         <!-- -Dcucumber.options="&#45;&#45;plugin io.qameta.allure.cucumberjvm.AllureCucumberJvm"-->
                    </argLine>
                    <properties>
                        <property>
                            <name>listener</name>
                            <value>io.qameta.allure.junit4.AllureJunit4</value>
                        </property>
                    </properties>

                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjweaver</artifactId>
                        <version>${aspectj.version}</version>
                    </dependency>
                </dependencies>
            </plugin>


现在正在创建 allure-results,我可以看到报告,但它几乎是空白的。

如何获得基于空手道项目的魅力报告?

如果 Allure 支持 Cucumber JSON 输出,它应该可以工作。否则建议您与 Allure 团队合作。

可以参考这个帖子(Extent):https://github.com/intuit/karate/issues/619

编辑:因为我向任何询问扩展/自定义报告的人推荐这个答案,请继续阅读。

在空手道 1.0 之后,Results 对象可用于获取有关测试结果的 所有 数据。此外,多个 JSON 文件将输出到 <build>/karate-reports。您甚至可以重试一些测试并合并结果:https://github.com/intuit/karate/wiki/1.0-upgrade-guide#retry-framework-experimental

另请注意 Java 挂钩的变化,现在称为 RuntimeHookhttps://github.com/intuit/karate/wiki/1.0-upgrade-guide#hooks