New issue 713: AttributeError: ReprFailDoctest instance has no attribute 'reprcrash' with --doctest-modules, --junit-xml and at a failing doctest. https://bitbucket.org/pytest-dev/pytest/issue/713/attributeerror-reprfaildoctest-instance
Richard Barrell: Reproduction: in `a/__init__.py`: ``` #!python def foo(): """ >>> 1 + 1 3 """ pass ``` Without --junit-xml: ``` #!text $ py.test a --doctest-modules ============================= test session starts ============================== platform linux2 -- Python 2.7.5 -- py-1.4.26 -- pytest-2.7.0 rootdir: /home/RichardB/a, inifile: plugins: cov collected 1 items a/__init__.py F =================================== FAILURES =================================== _______________________________ [doctest] a.foo ________________________________ 002 """ 003 >>> 1 + 1 Expected: 3 Got: 2 /home/RichardB/a/__init__.py:3: DocTestFailure =========================== 1 failed in 0.01 seconds =========================== ``` And that's fine. However, when I try with --junit-xml: ``` #!text $ py.test a --doctest-modules --junit-xml=junit.xml ============================= test session starts ============================== platform linux2 -- Python 2.7.5 -- py-1.4.26 -- pytest-2.7.0 rootdir: /home/RichardB/a, inifile: plugins: cov collected 1 items a/__init__.py F INTERNALERROR> Traceback (most recent call last): INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/main.py", line 84, in wrap_session INTERNALERROR> doit(config, session) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/main.py", line 122, in _main INTERNALERROR> config.hook.pytest_runtestloop(session=session) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 521, in __call__ INTERNALERROR> return self._docall(self.methods, kwargs) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 528, in _docall INTERNALERROR> firstresult=self.firstresult).execute() INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 394, in execute INTERNALERROR> res = method(*args) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/main.py", line 142, in pytest_runtestloop INTERNALERROR> item.config.hook.pytest_runtest_protocol(item=item, nextitem=nextitem) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 521, in __call__ INTERNALERROR> return self._docall(self.methods, kwargs) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 528, in _docall INTERNALERROR> firstresult=self.firstresult).execute() INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 393, in execute INTERNALERROR> return wrapped_call(method(*args), self.execute) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 113, in wrapped_call INTERNALERROR> return call_outcome.get_result() INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 138, in get_result INTERNALERROR> py.builtin._reraise(*ex) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 123, in __init__ INTERNALERROR> self.result = func() INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 394, in execute INTERNALERROR> res = method(*args) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/runner.py", line 65, in pytest_runtest_protocol INTERNALERROR> runtestprotocol(item, nextitem=nextitem) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/runner.py", line 75, in runtestprotocol INTERNALERROR> reports.append(call_and_report(item, "call", log)) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/runner.py", line 123, in call_and_report INTERNALERROR> hook.pytest_runtest_logreport(report=report) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 521, in __call__ INTERNALERROR> return self._docall(self.methods, kwargs) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 528, in _docall INTERNALERROR> firstresult=self.firstresult).execute() INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/core.py", line 394, in execute INTERNALERROR> res = method(*args) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/junitxml.py", line 193, in pytest_runtest_logreport INTERNALERROR> self.append_failure(report) INTERNALERROR> File "/home/RichardB/buildouts/pytest/eggs/pytest-2.7.0-py2.7.egg/_pytest/junitxml.py", line 132, in append_failure INTERNALERROR> message = report.longrepr.reprcrash.message INTERNALERROR> AttributeError: ReprFailDoctest instance has no attribute 'reprcrash' =========================== 1 failed in 0.02 seconds =========================== ``` _______________________________________________ pytest-commit mailing list pytest-commit@python.org https://mail.python.org/mailman/listinfo/pytest-commit