【问题标题】:Recommend workaround for the missing environmental support in pytest/allure?推荐 pytest/allure 中缺少环境支持的解决方法?
【发布时间】:2018-09-08 02:36:45
【问题描述】:

最新版本中仍然缺少对 pytest 环境小部件的 Allure 支持(请参阅:https://github.com/allure-framework/allure-python/issues/96

我想知道是否有人找到了解决此缺失功能的方法?例如,我注意到环境数据是从 \allure-report\widgets\environment.json

读取的

有没有人成功直接写入环境文件或找到其他解决方法?

【问题讨论】:

    标签: python pytest allure


    【解决方案1】:

    您可以将环境变量以简单的key=value 格式写入名为environment.properties 的文件:

    browser=chrome
    evn=staging
    

    并把它放到path/to/allure-results/environment.properties 之前用命令行或CI插件生成报告

    【讨论】:

    • 我无法让它工作。如果文件夹包含任何文件,包括 environment.properties,Allure 命令行将拒绝生成报告,除非提供了 --clean 选项。
    • 您能否分享一下在报告生成过程中包含 environment.properties 的任何特定错误?
    • Allure:报告的目标目录C:\Allure-Test\allure-report已经在使用中,添加'--clean'选项覆盖
    • 目标目录除 environment.properties 文件外为空
    • 需要将 environment.properties 放到 allure-results 目录(适配器以 json 格式存储原始结果的目录),而不是目标 allure-report 目录
    【解决方案2】:

    终于弄清楚如何将动态值传递给 ENV 小部件。毕竟这真的很容易。

    对于使用 Jenkins Allure 插件的人:

    我们在 Windows 机器上运行我们的作业(Windows 批处理命令),将一些构建参数传递给 python 测试运行器。

    然后在后期构建操作中调用Allure Report。结果路径为reports/$BUILD_TAG

    $BUILD_TAG 是一个可用的环境变量(在 Windows 批处理命令下查找链接)

    因此,要使用环境变量或构建参数填充您的报告,只需在运行测试后创建另一个 Windows 批处理命令,如下所示:

    cd reports/%BUILD_TAG%
    (
    echo BUILD=%build%  
    echo ENVIRONMENT=%env%
    )>environment.properties
    

    这将使用您的构建信息动态创建一个 environment.properties 文件。

    一旦您的工作进入构建后操作(即 Allure 报告),它将使用您的 environment.properties 生成所有原始 json。哇啦啦!

    注意:目前这是为 Windows 配置的。在运行作业的过程中,会在 Linux 机器上生成报告。将“Windows 批处理命令”更改为“执行 shell”并配置 Linux 命令。应该是直截了当的。

    【讨论】:

      猜你喜欢
      • 2014-03-16
      • 2016-01-06
      • 1970-01-01
      • 1970-01-01
      • 2018-03-10
      • 2022-12-12
      • 2023-03-19
      • 2014-12-09
      • 1970-01-01
      相关资源
      最近更新 更多