I am trying to do something like this recently and I found a way out:
import unittest class MyTestResult(unittest.TestResult): def addFailure(self, test, err):
If you want to do other work according to another class of test case, you can achieve this as follows:
import unittest class MyUT(unittest.TestCase): class TestResult(unittest.TestResult): def addFailure(self, test, err): print('do something when test case failed') super(MyUT.TestResult, self).addFailure(test, err) def addError(self, test, err): print('test case error') super(MyUT.TestResult, self).addError(test, err) def test_fail(self): self.assertEqual(1, 2, "1=2") class MyUT2(unittest.TestCase): class TestResult(unittest.TestResult): def addFailure(self, test, err): print('do something else when test case failed') super(MyUT2.TestResult, self).addFailure(test, err) def addError(self, test, err): print('test case error') super(MyUT2.TestResult, self).addError(test, err) def test_fail(self): self.assertEqual(1, 2, "1=2") if __name__ == '__main__': classes = [MyUT, MyUT2] for c in classes: suite = unittest.TestLoader().loadTestsFromTestCase(c) unittest.TextTestRunner(resultclass=c.TestResult).run(suite)
Wkplus
source share