如何重命名由PyTest生成的html报告的测试用例

时间:2020-02-29 16:14:59

标签: python html python-3.x pytest pytest-html

下面是PyTest生成的HTML报告,其中测试用例名称为“ test_demo.py::test_demo_framework[0]” 代替此方法的名称,我想显示一些实际的测试名称,例如“ 验证用户名和密码”,该名称理想地描述了执行了哪种测试,并且可以从方法名称中更好地了解报表阅读器/ number,很难确定此测试中测试了什么。

我想重命名黄色的Testcases名称。

HTML Report generated by PyTest with meaningless Tests name

1 个答案:

答案 0 :(得分:2)

在conftest中使用该hookwrapper:

@pytest.mark.hookwrapper
def pytest_runtest_makereport(item, call):
    outcome = yield
    report = outcome.get_result() 
    test_fn = item.obj
    docstring = getattr(test_fn, '__doc__')
    if docstring:
        report.nodeid = docstring

对于您运行的每个测试,您都有一个特定的名称。您也可以使其动态(使用参数)-例如:

def test_username(my_username):
 test_username.__doc__ = "Verify username and password for: " + str(my_username)