Display message from reprcrash in short test summary
This is useful to see common patterns easily, but also for single failures already.
This commit is contained in:
parent
e04936fc29
commit
3d0ecd03ed
|
@ -211,7 +211,25 @@ def show_simple(terminalreporter, lines, stat):
|
|||
for rep in failed:
|
||||
verbose_word = _get_report_str(config, rep)
|
||||
pos = _get_pos(config, rep)
|
||||
lines.append("%s %s" % (verbose_word, pos))
|
||||
|
||||
line = "%s %s" % (verbose_word, pos)
|
||||
try:
|
||||
msg = rep.longrepr.reprcrash.message
|
||||
except AttributeError:
|
||||
pass
|
||||
else:
|
||||
# Only use the first line.
|
||||
# Might be worth having a short_message property, which
|
||||
# could default to this behavior.
|
||||
i = msg.find("\n")
|
||||
if i != -1:
|
||||
msg = msg[:i]
|
||||
max_len = terminalreporter.writer.fullwidth - len(line) - 2
|
||||
if len(msg) > max_len:
|
||||
msg = msg[: (max_len - 1)] + "…"
|
||||
line += ": %s" % msg
|
||||
|
||||
lines.append(line)
|
||||
|
||||
|
||||
def show_xfailed(terminalreporter, lines):
|
||||
|
|
|
@ -865,7 +865,9 @@ class TestInvocationVariants(object):
|
|||
_fail, _sep, testid = line.partition(" ")
|
||||
break
|
||||
result = testdir.runpytest(testid, "-rf")
|
||||
result.stdout.fnmatch_lines([line, "*1 failed*"])
|
||||
result.stdout.fnmatch_lines(
|
||||
["FAILED test_doctest_id.txt::test_doctest_id.txt", "*1 failed*"]
|
||||
)
|
||||
|
||||
def test_core_backward_compatibility(self):
|
||||
"""Test backward compatibility for get_plugin_manager function. See #787."""
|
||||
|
|
|
@ -1208,6 +1208,6 @@ def test_summary_list_after_errors(testdir):
|
|||
[
|
||||
"=* FAILURES *=",
|
||||
"*= short test summary info =*",
|
||||
"FAILED test_summary_list_after_errors.py::test_fail",
|
||||
"FAILED test_summary_list_after_errors.py::test_fail: assert 0",
|
||||
]
|
||||
)
|
||||
|
|
|
@ -726,12 +726,18 @@ class TestTerminalFunctional(object):
|
|||
result.stdout.fnmatch_lines(["collected 3 items", "hello from hook: 3 items"])
|
||||
|
||||
|
||||
def test_fail_extra_reporting(testdir):
|
||||
testdir.makepyfile("def test_this(): assert 0")
|
||||
def test_fail_extra_reporting(testdir, monkeypatch):
|
||||
monkeypatch.setenv("COLUMNS", "80")
|
||||
testdir.makepyfile("def test_this(): assert 0, 'this_failed' * 100")
|
||||
result = testdir.runpytest()
|
||||
assert "short test summary" not in result.stdout.str()
|
||||
result = testdir.runpytest("-rf")
|
||||
result.stdout.fnmatch_lines(["*test summary*", "FAIL*test_fail_extra_reporting*"])
|
||||
result.stdout.fnmatch_lines(
|
||||
[
|
||||
"*test summary*",
|
||||
"FAILED test_fail_extra_reporting.py::test_this: AssertionError: this_failedthis…",
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
def test_fail_reporting_on_pass(testdir):
|
||||
|
|
Loading…
Reference in New Issue