如何自定义宁静报告BDD

问题描述:

我希望更改Serenity报告中的CSS和徽标。另外我想在Serenity报告中添加一些自定义文本或链接到某些测试。与生成Excel报告一样,我希望在报告的测试步骤中提供它的链接。达到此目的的最佳方法是什么?如何自定义宁静报告BDD

+0

我一直在寻找有一段时间了答案,似乎没有被任何研究在这方面所做的任何地方。我建议你从_serenity-report-resources-x.x.xx.jar_开始,并熟悉** Serenity **如何构建其报告。此外,请务必查看[this](http://*.com/questions/38913415/serenity-reports-logo-change/38917386#38917386)了解如何更改徽标。 – JDelorean

定制CSS和图像的一种方法是使用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> 

佩斯你在 “的src /主/资源/图像” 的图像。即您的名称为“serenity-logo.png”的徽标,因为HTML代码具有此名称。您可以添加CSS文件以及要替换的CSS文件的相对路径。

运行测试后,只需运行命令“mvn process-resources”。这将取代文件,然后你有一个网站与您的图像和CSS文件定制。

这不是最好的解决方案,但可以快速修复您的报告。

我发现了一个更好,更清洁的方式来定制宁静报告。基本上,我们可以使用不同的版本号生成我们自己的Serenity-reports-resources项目,并配置我们的项目以使用我们自定义的报告资源构建版本,而不是正式报告资源。该setps要做到这一点如下:从

  1. 下载来源:

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

  2. 修改建摇篮设置来生成自己的“宁静 - 报告 - 资源”的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.1运行

    publishing/publishToMavenLocal

  3. 运行

    mvn clean build
    安装报表网站在当地的仓库一个新的Maven的依赖。在其他环境中运行测试时,在您需要的地方发布或部署此版本。

  4. 配置您的项目不包括官方的“serenity-report-resources”依赖项,而是添加你的项目。

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> 

现在,当你运行的“SerenityRunner”测试中,它应该找到你的自定义报表的资源构建,而不是正式的宁静报告建立。

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

我希望它能帮助, 保持对黑客