terminal: report collection errors as "ERROR" in short summary

This commit is contained in:
Daniel Hahler 2019-10-25 05:59:10 +02:00
parent d1bc2601e4
commit 82753bec50
3 changed files with 25 additions and 1 deletions

View File

@ -0,0 +1 @@
Collection errors are reported as errors (and not failures like before) in the terminal's short test summary.

View File

@ -187,7 +187,13 @@ def pytest_report_teststatus(report):
letter = "F"
if report.when != "call":
letter = "f"
return report.outcome, letter, report.outcome.upper()
# Report failed CollectReports as "error" (in line with pytest_collectreport).
outcome = report.outcome
if report.when == "collect" and outcome == "failed":
outcome = "error"
return outcome, letter, outcome.upper()
@attr.s

View File

@ -1776,3 +1776,20 @@ def test_format_session_duration(seconds, expected):
from _pytest.terminal import format_session_duration
assert format_session_duration(seconds) == expected
def test_collecterror(testdir):
p1 = testdir.makepyfile("raise SyntaxError()")
result = testdir.runpytest("-ra", str(p1))
result.stdout.fnmatch_lines(
[
"collected 0 items / 1 errors",
"*= ERRORS =*",
"*_ ERROR collecting test_collecterror.py _*",
"E SyntaxError: *",
"*= short test summary info =*",
"ERROR test_collecterror.py",
"*! Interrupted: 1 errors during collection !*",
"*= 1 error in *",
]
)