После многих проб и ошибок, я, наконец, получил эту работу ...
Основываясь на scoffey's answer.
Надеюсь, что это поможет.
import unittest
class MyTest(unittest.TestCase):
currentResult = None # holds last result object passed to run method
@classmethod
def setResult(cls, amount, errors, failures, skipped):
cls.amount, cls.errors, cls.failures, cls.skipped = \
amount, errors, failures, skipped
def tearDown(self):
amount = self.currentResult.testsRun
errors = self.currentResult.errors
failures = self.currentResult.failures
skipped = self.currentResult.skipped
self.setResult(amount, errors, failures, skipped)
@classmethod
def tearDownClass(cls):
print("\ntests run: " + str(cls.amount))
print("errors: " + str(len(cls.errors)))
print("failures: " + str(len(cls.failures)))
print("success: " + str(cls.amount - len(cls.errors) - len(cls.failures)))
print("skipped: " + str(len(cls.skipped)))
def run(self, result=None):
self.currentResult = result # remember result for use in tearDown
unittest.TestCase.run(self, result) # call superclass run method
def testA(self):
self.assertTrue(True) # succeeds
def testB(self):
self.assertTrue(False) # fails
def testC(self):
self.assertTrue(1 + None is None) # raises TypeError
@unittest.skip("skip it") # skipped
def testD(self):
self.assertTrue("whatever")
if __name__ == '__main__':
unittest.main()
запустить скрипт с
python test.py > result.txt
Result.txt:
tests run: 3
errors: 1
failures: 1
success: 1
skipped: 1
Я не уверен, что это лучший способ, но он работает. Модуль Unittest прост в использовании, но трудно овладеть, теперь я чувствую, что об этом мало знаю.
Что вы пробовали? Пожалуйста, прочитайте здесь: http://stackoverflow.com/help/how-to-ask – aberna
просто попробовал функцию обнаружения unittest, но не смог проверить, какие тесты были пропущены – user3142208