修改或控制由 maven-cucumber-reporting/net.masterthought 生成的 HTML 报告

Modifying or control of HTML report generated by maven-cucumber-reporting/net.masterthought

     <plugin>
        <groupId>net.masterthought</groupId>
        <artifactId>maven-cucumber-reporting</artifactId>
        <version>${masterThougth.version}</version>
        <executions>
            <execution>
                <id>execution</id>
                <phase>verify</phase>
                <goals>
                    <goal>generate</goal>
                </goals>
                <configuration>
                    <checkBuildResult>false</checkBuildResult>
                    <projectName>${project.artifactId}</projectName>
                    <buildNumber>${project.build}</buildNumber>
                    <parallelTesting>true</parallelTesting>
                    <outputDirectory>target/cucumber-report/</outputDirectory>
                    <cucumberOutput>target/cucumber-report/</cucumberOutput>
                </configuration>
            </execution>
        </executions>
    </plugin>

我正在使用上面的 maven cucumber 插件来生成 HTML 测试 report.How 我可以在 html 报告的每个步骤中添加新属性吗,是否可以添加其他属性然后 html report.I 中的标准 START、END 功能文件名等想要为甚至通过的测试用例添加屏幕截图。

这可以通过将场景对象存储在全局变量中然后在步骤定义中使用它来实现。例如,

Class Common{
    public static Scenario scenario;

    @before
    public void beforeScenario(Scenario scenarioObj){
       scenario = scenarioObj;
}

在步骤定义中,我们可以像这样使用它,

Class step definitions{

   @Given("^I am on homepage$")
    public void iamonhomepage(){
        Common.scenario. embed(take screenshot());
    }
}

此嵌入方法会将屏幕截图附加到报告中。我们还可以使用场景对象的 write 方法向报告添加一些文本消息,例如

scenario.write("I am inside step definitions ");

我们也可以在 write 方法中使用格式化 HTML 标签,例如

scenario.write("I am <b> inside </b> step definitions ");