Die assert False
arbeitet gerade fein, aber die AssertionError
durch die TestCase.run()
Methode gefangen wird, später gesammelt werden.
Sie nicht in einer TestResult
Instanz, so in Python 3 die TestCase.run()
Funktion gibt ein neues Ergebnisobjekt für Sie bestanden haben:
>>> from unittest import TestCase
>>> class TestCaseTest(TestCase):
... def testFailedResutFormatted(self):
... assert False
...
>>> tc = TestCaseTest("testFailedResutFormatted")
>>> tc.run()
<unittest.result.TestResult run=1 errors=0 failures=1>
Dort sehen Sie ein Fehler aufgezeichnet wurde.
Übergeben Sie eine TestResult
Instanz an die TestCase.run()
Methode und es wird stattdessen verwendet; Das result.failures
Attribut zeigt die Assertion gefeuert und wurde aufgezeichnet:
>>> from unittest import TestResult
>>> result = TestResult()
>>> tc.run(result)
>>> result
<unittest.result.TestResult run=1 errors=0 failures=1>
>>> result.failures
[(<__main__.TestCaseTest testMethod=testFailedResutFormatted>, 'Traceback (most recent call last):\n File "<stdin>", line 3, in testFailedResutFormatted\nAssertionError\n')]
>>> print result.failures[0][1]
Traceback (most recent call last):
File "<stdin>", line 3, in testFailedResutFormatted
AssertionError
Das ist genau das, was ich gesucht habe, vielen Dank! –