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:
|
for rep in failed:
|
||||||
verbose_word = _get_report_str(config, rep)
|
verbose_word = _get_report_str(config, rep)
|
||||||
pos = _get_pos(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):
|
def show_xfailed(terminalreporter, lines):
|
||||||
|
|
|
@ -865,7 +865,9 @@ class TestInvocationVariants(object):
|
||||||
_fail, _sep, testid = line.partition(" ")
|
_fail, _sep, testid = line.partition(" ")
|
||||||
break
|
break
|
||||||
result = testdir.runpytest(testid, "-rf")
|
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):
|
def test_core_backward_compatibility(self):
|
||||||
"""Test backward compatibility for get_plugin_manager function. See #787."""
|
"""Test backward compatibility for get_plugin_manager function. See #787."""
|
||||||
|
|
|
@ -1208,6 +1208,6 @@ def test_summary_list_after_errors(testdir):
|
||||||
[
|
[
|
||||||
"=* FAILURES *=",
|
"=* FAILURES *=",
|
||||||
"*= short test summary info =*",
|
"*= 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"])
|
result.stdout.fnmatch_lines(["collected 3 items", "hello from hook: 3 items"])
|
||||||
|
|
||||||
|
|
||||||
def test_fail_extra_reporting(testdir):
|
def test_fail_extra_reporting(testdir, monkeypatch):
|
||||||
testdir.makepyfile("def test_this(): assert 0")
|
monkeypatch.setenv("COLUMNS", "80")
|
||||||
|
testdir.makepyfile("def test_this(): assert 0, 'this_failed' * 100")
|
||||||
result = testdir.runpytest()
|
result = testdir.runpytest()
|
||||||
assert "short test summary" not in result.stdout.str()
|
assert "short test summary" not in result.stdout.str()
|
||||||
result = testdir.runpytest("-rf")
|
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):
|
def test_fail_reporting_on_pass(testdir):
|
||||||
|
|
Loading…
Reference in New Issue