如何自定义报告以获得宁静的BDD

时间:2016-08-18 18:21:08

标签: serenity-bdd cucumber-serenity

我希望在Serenity报告中更改CSS和徽标。另外,我想在Serenity报告中添加一些自定义文本或链接到一些测试。就像生成一个excel报告一样,我希望在报告的测试步骤中提供它的链接。实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:3)

我找到了一种更好,更清晰的方式来自定义Serenity报告。基本上,我们可以使用不同的版本号生成我们自己的Serenity-reports-resources项目,并将我们的项目配置为使用我们的自定义报告资源构建而不是官方报告资源。执行此操作的setps如下:

  1. 从以下网址下载资源:

    https://github.com/serenity-bdd/serenity-core.git

  2. 修改构建Gradle设置以生成您自己的" serenity-report-resources" jar文件。打开" build.gradle"文件。 2.1添加" mavenLocal()"到存储库:

    buildscript {
        repositories {
            mavenLocal()
            .....

    2.2添加Maven发布插件     

    apply plugin: 'maven-publish'

    2.3更改子项目版本号。替换行:

    version = rootProject.version

    代表

    version = '0.0.0.1'

    注意:使用所需的版本号来跟踪报告网站的更改。

  3. 为子项目运行

    mvn clean build
    " serenity-report-resources"

    3.1运行

    publishing / publishToMavenLocal
    将报告站点安装为本地存储库中的新maven依赖项。在其他环境中运行测试时,在需要的位置发布或部署此构建。

  4. 将您的项目配置为不包含官方" serenity-report-resources"依赖并添加你的。

  5. 4.1在依赖项部分添加没有报告的serenity-core。

    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-core</artifactId>
        <version>${serenity.version}</version>
        <exclusions>
            <exclusion>
                <groupId>net.serenity-bdd</groupId>
                <artifactId>serenity-report-resources</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    

    4.2添加自定义报告依赖项。使用您之前使用的相同版本号。

    <dependency>
        <groupId>net.serenity-bdd</groupId>
        <artifactId>serenity-report-resources</artifactId>
        <version>0.0.0.1</version>
    </dependency>
    

    4.3配置serenity插件依赖项以使用自定义报告构建。

    <!-- Serenity plugin -->
    <plugin>
        <groupId>net.serenity-bdd.maven.plugins</groupId>
        <artifactId>serenity-maven-plugin</artifactId>
        <version>${serenity.maven.version}</version>
        <dependencies>
            <dependency>
                <groupId>net.serenity-bdd</groupId>
                <artifactId>serenity-core</artifactId>
                <version>${serenity.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>net.serenity-bdd</groupId>
                        <artifactId>serenity-report-resources</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>net.serenity-bdd</groupId>
                    <artifactId>serenity-report-resources</artifactId>
                    <version>0.0.2</version>
            </dependency>
        </dependencies>
        <executions>
            <execution>
                <id>serenity-reports</id>
                <phase>post-integration-test</phase>
                <goals>
                    <goal>aggregate</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
    

    现在,当您使用&#34; SerenityRunner&#34;进行测试时它应该找到自定义报告构建的资源,而不是官方的宁静报告构建。

    如果我们可以将同一框架中生成报告所需的资源位置配置为静态或系统属性,那会更好。让我们看看我能做些什么: - )

    我希望它有所帮助, 继续黑客攻击

答案 1 :(得分:1)

自定义CSS和图像的一种hacky方法是使用Maven Resources Plugin,如下所示。

 
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.4</version>
            <executions>
                <execution>
                    <id>copy-web.xml</id>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy-resources</goal>
                    </goals>
                    <configuration>
                        <overwrite>true</overwrite>
                        <outputDirectory>${basedir}/target/site/serenity/images</outputDirectory>
                        <resources>
                            <resource>
                                <directory>src/main/resources/images</directory>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>

将图像调整到&#34; src / main / resources / images&#34;。即您的徽标名称为&#34; serenity-logo.png&#34;,因为HTML代码具有此名称。您还可以添加CSS文件以及要替换的CSS文件的相对路径。

运行测试后,只需运行命令&#34; mvn process-resources&#34;。这将替换文件,然后您有一个自定义图像和CSS文件的站点。

这不是最佳解决方案,但可以快速了解报告的外观。