黄瓜范围报告插件 - 将参数设置为系统属性而不是使用 extent.properties 文件时的 NPE

cucumber extent report plugin - NPE when setting parameters as system properties instead of using extent.properties file

我正在创建一个带有范围报告的黄瓜项目。我使用了 cucumber extent adapter 5 插件。当我使用 extent.properties 文件进行配置时,一切正常。但是当我如下所示设置系统属性时(而不是属性文件)

System.setProperty("extent.reporter.spark.start", "true");
System.setProperty("extent.reporter.spark.config", "spark-config.xml");
System.setProperty("extent.reporter.spark.out", "test-output/sparkReport/");
System.setProperty("extent.reporter.spark.base64imagesrc", "true");
    }

我从扩展适配器服务 class 通过以下方法获得了 NPE,即使我已经使用系统属性设置了值。

 private static void sparkBase64PngImageStyle() {
      if ("true".equals(String.valueOf(ExtentService.properties.getOrDefault("extent.reporter.spark.base64imagesrc", "false"))))
        ENABLE_BASE64_IMAGE_SRC = true; 
    }

错误:

com.aventstack.extentreports.service.ExtentService.Access$400() 返回空值

任何指点都会很有帮助。谢谢....

如果您在 class 之前从 TestRunner class 文件设置属性,它将不起作用,因为内部 class 初始化这些属性 运行在指针指向 before class .

之前

但您可以通过以下 2 个选项实现。

  1. 在pom.xml中添加如下配置。 testoutput/SparkReport/Spark.html

  2. 从 maven 命令发送配置命令。

mvn clean install -DargLine="-Dextent.reporter.spark.start=true -Dextent.reporter.spark.out=test-output/SparkReport/Spark.html"

具体实现见下文link

https://ghchirp.tech/3196/

这就是我如何让它与导出的 JAR 一起工作。

  1. 创建了一个包 com.aventstack.adapter 并将属性文件放在这个包中
  2. 将 spark-config.xml 文件放在与导出的 JAR 文件相同的文件夹中