By default pytest use test function names or test files names in pytest reports
is there any Best way to add test description (Long test name) in the report with out renaming the files or functions using pytest?
Can we do this by updating the testcase name at run-time like ?
request.node.name = "Very Very Very Very Very long long long long name name name name"
def test_ok():
"""Very Very Very Very Very long long long long name name name name"""
print("ok")
Using the pytest_runtest_makereport
hook, the reported name can be adjusted for each test. (Note that hooks must be placed within a plugin, or a 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")
This will produce output similar to:
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%]
See "hookwrapper: executing around other hooks" for more info on the outcome = yield
and outcome.get_result()
business.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With