python - 是否可以根据 pytest 参数更改 junit_suite_name ?
问题描述
我正在尝试pytest
在 Jenkins 上运行时以 JUnit XML 格式创建测试报告。
默认测试套件名称是“pytest”,但我想根据参数值更改名称。
例如,
中conftest.py
,我有
def pytest_addoption(parser):
parser.addoption("--site", type=str.upper, action="append", default=[],
help="testing site")
我想junit_suite_name
根据站点值更改选项。
我阅读了 pytest 文档,但发现您可以像这样更改配置文件中的名称
[pytest]
junit_suite_name = my_suite
或在命令行上,-o junit_suite_name.
但是这样一来,所有测试用例的名称将始终相同。有没有办法有条件地对套件名称进行分组?
谢谢
解决方案
您可以通过设置或更改config.inicfg
dict 中的值以编程方式更改 ini 选项。例如,在自定义pytest_configure
hookimpl 中进行:
def pytest_configure(config):
if config.option.site == 'foo':
config.inicfg['junit_suite_name'] = 'bar'
JUnit 报告中的套件名称现在将bar
在您运行时出现pytest --site=foo
。
推荐阅读
- javascript - 结合 2 个复杂的 Javascript 函数
- azure-application-insights - Application Insights starttrackevent stoptrackevent 在单个会话中跨页面
- c# - 如何通过单元测试执行 C# wpf 命令
- ssl - 为错误的主机名颁发 SSL 证书 (HP MFD)
- python - 异步函数上的 UnboundLocalError
- python-3.x - 为什么我在尝试使用 anaconda 导入 python-docx 时遇到 ModuleNotFoundError?
- c++ - 在矩阵中从左、右、上、下查找岛
- typescript - 如果项目是唯一的,则为数组添加 Mongoose $addToSet
- neo4j - 使用 GDS 制作 neo4j 无向图
- alacritty - 使用覆盖选项启动 Alacritty