對於TestCase
類中的方面,有一個assertRaises()
,其中您要確保由待測代碼引發錯誤。
如果您想在此處引發錯誤並中止測試該單元(並繼續進行下一個單元測試),請提升未捕獲的異常;單元測試模塊將趕上它:
raise NotImplementedError("malformed sub: %r" % (sub,))
我不認爲有可用除了直接提高錯誤陳述的任何其他API方面,一個單元測試用例導致錯誤。
class PassingTest(unittest.TestCase):
def runTest(self):
self.assertTrue(True)
class FailingTest(unittest.TestCase):
def runTest(self):
self.assertTrue(False)
class ErrorTest(unittest.TestCase):
def runTest(self):
raise NotImplementedError("error")
class PassingTest2(unittest.TestCase):
def runTest(self):
self.assertTrue(True)
結果:
EF..
======================================================================
ERROR: runTest (__main__.ErrorTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./t.py", line 15, in runTest
raise NotImplementedError("error")
NotImplementedError: error
======================================================================
FAIL: runTest (__main__.FailingTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "./t.py", line 11, in runTest
self.assertTrue(False)
AssertionError: False is not true
----------------------------------------------------------------------
Ran 4 tests in 0.002s
FAILED (failures=1, errors=1)