Python 如何向pytest html报告添加附加变量

Python 如何向pytest html报告添加附加变量,python,html,selenium,selenium-webdriver,pytest,Python,Html,Selenium,Selenium Webdriver,Pytest,我正在使用pytestHTML报告插件进行硒测试。 它只需通过test.py--html==report.htmlin命令行就可以很好地工作,并生成很好的报告 我还需要为每个测试用例显示实现额外的字符串/变量。不管是通过还是失败,只要显示“票号”就行了。我可以在每个测试场景中返回此票证id 我可以在测试名称中添加票号,但它看起来很难看 请告诉我最好的方法是什么 谢谢。您可以为每个测试插入自定义html,方法是将html内容添加到每个测试的“显示详细信息”部分,或自定义结果表(例如,添加票证列)

我正在使用
pytest
HTML报告插件进行硒测试。 它只需通过
test.py--html==report.htmlin
命令行就可以很好地工作,并生成很好的报告

我还需要为每个测试用例显示实现额外的字符串/变量。不管是通过还是失败,只要显示“票号”就行了。我可以在每个测试场景中返回此票证id

我可以在测试名称中添加票号,但它看起来很难看

请告诉我最好的方法是什么


谢谢。

您可以为每个测试插入自定义html,方法是将html内容添加到每个测试的“显示详细信息”部分,或自定义结果表(例如,添加票证列)

第一种可能是最简单的,您只需将以下内容添加到conftest.py

@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
    pytest_html = item.config.pluginmanager.getplugin('html')
    outcome = yield
    report = outcome.get_result()
    extra = getattr(report, 'extra', [])
    if report.when == 'call':
        extra.append(pytest_html.extras.html('<p>some html</p>'))
        report.extra = extra

请记住,您始终可以使用item对象访问当前测试,这可能有助于检索您所需的信息。

Hi nice one,应该为“html”导入哪个模块?@user1181979
from py.xml import html
@pytest.mark.optionalhook
def pytest_html_results_table_header(cells):
    cells.insert(1, html.th('Ticket'))


@pytest.mark.optionalhook
def pytest_html_results_table_row(report, cells):
    cells.insert(1, html.td(report.ticket))


@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result()
    report.ticket = some_function_that_gets_your_ticket_number()