我试图在Jenkins上运行pytest
时以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.
但是这样,所有测试用例的名称将始终相同。 有没有办法对套件名称进行有条件的分组?
谢谢
答案 0 :(得分:1)
您可以通过设置或更改config.inicfg
字典中的值来以编程方式更改ini选项。例如,在自定义pytest_configure
hookimpl中进行操作:
def pytest_configure(config):
if config.option.site == 'foo':
config.inicfg['junit_suite_name'] = 'bar'
当您运行bar
时,JUnit报表中的套件名称现在将为pytest --site=foo
。