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

时间:2017-06-14 16:57:16

标签: maven bdd cucumber-java

     <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 cuc插件生成HTML测试报告。如何在html报告的每个步骤中添加新属性,是否可以添加除START,END等标准之外的其他属性html报告中的特征文件名等。我想为即使通过的测试用例添加屏幕截图。

1 个答案:

答案 0 :(得分:3)

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

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());
    }
}

此嵌入方法会将屏幕截图附加到报告中。我们还可以使用场景对象的写入方法(如

)向报表添加一些文本消息
scenario.write("I am inside step definitions ");

我们也可以在写方法中使用格式化HTML标记,如

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