1

下面是由 PyTest 生成的 HTML 报告,测试用例名称为“test_demo.py::test_demo_framework[0]” ,而不是这个方法的名称我想显示一些实际的测试名称,如“验证用户名和密码”,它理想地描述了什么样的已执行测试并为报告读者提供了更好的理解,显然从方法名称/编号来看,很难确定作为该测试的一部分测试的内容。

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

PyTest 生成的 HTML 报告,带有无意义的测试名称

4

1 回答 1

3

在 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)
于 2020-05-15T18:57:21.397 回答