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

How to rename the test cases of html report generated by PyTest

下面是 PyTest 生成的 HTML 报告,测试用例名称为 "test_demo.py::test_demo_framework[0]" 我想显示一些实际的测试名称,而不是此方法的名称,例如“验证用户名和密码”,它理想地描述了执行的测试类型并更好地理解报告reader,显然从方法 name/number 来看,很难确定测试的内容是这个测试的一部分。

我想重命名黄色突出显示的测试用例的名称。

在 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)