默认情况下,pytest 在 pytest 报告中使用测试函数名称或测试文件名称
有没有最好的方法在报告中添加测试描述(长测试名称)而不使用 pytest 重命名文件或函数?
我们可以通过在运行时更新测试用例名称来做到这一点吗?
request.node.name = "Very Very Very Very Very long long long long name name name name"
Run Code Online (Sandbox Code Playgroud)
def test_ok():
"""Very Very Very Very Very long long long long name name name name"""
print("ok")
Run Code Online (Sandbox Code Playgroud)
使用pytest_runtest_makereport
hook,可以为每个测试调整报告的名称。(注意钩子必须放在插件中,或者一个conftest.py
)
# conftest.py
import pytest
@pytest.hookimpl(hookwrapper=True)
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
# test_it.py
def test_ok():
"""Very Very Very Very Very long long long long name name name name"""
print("ok")
Run Code Online (Sandbox Code Playgroud)
这将产生类似于以下内容的输出:
tests/test_stuff.py::test_ok
Very Very Very Very Very long long long long name name name name <- tests/test_stuff.py PASSED [100%]
Run Code Online (Sandbox Code Playgroud)
有关和业务的更多信息,请参阅“hookwrapper:在其他钩子周围执行”。outcome = yield
outcome.get_result()
归档时间: |
|
查看次数: |
2235 次 |
最近记录: |