unittest是否可以有一个选项来统计已跳过测试的总测试次数和运行次数。在运行之后,测试数量失败了(我知道可以在输出中看到它)。如果我想以编程方式接受它,我想将其转储为json会很棒
多谢
经过多次试验和错误,我终于可以正常工作了。
基于scoffey的答案。
希望能帮助到你。
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模块易于使用,但很难掌握,现在我对此几乎一无所知。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句