使用assertEquals()
中的unittest.TestCase
。我现在要做的是调用一个函数并在断言失败时做一些事情,我想知道是否有一种方法可以做到这一点?
答案 0 :(得分:5)
一般情况下你不应该这样做,但如果你真的想这样做,这里有一个简单的例子:
import unittest
def testFailed():
print("test failed")
class T(unittest.TestCase):
def test_x(self):
try:
self.assertTrue(False)
except AssertionError:
testFailed()
raise
if __name__ == "__main__":
suite = unittest.defaultTestLoader.loadTestsFromTestCase(T)
unittest.TextTestRunner().run(suite)
另一个更通用的可能性是编写自己的runTest
方法(如the documentation中所述),它将使用try
/ except
块包装所有测试。如果你真的需要这样做,那就更加推荐了,因为它会让你的测试代码保持干净。
答案 1 :(得分:3)
抓住它:
try:
# something
except AssertionError:
# do something