计算Python单元测试中的子测试

计算Python单元测试中的子测试,第1张

概述从3.4版开始, Python supports a simple subtest syntax when writing unittests.一个简单的例子可能如下所示: import unittestclass NumbersTest(unittest.TestCase): def test_successful(self): """A test with sub 从3.4版开始,Python supports a simple subtest syntax when writing unittests.一个简单的例子可能如下所示:

import unittestclass NumbersTest(unittest.TestCase):    def test_successful(self):        """A test with subtests that will all succeed."""        for i in range(0,6):            with self.subTest(i=i):                self.assertEqual(i,i)if __name__ == '__main__':    unittest.main()

运行测试时,输出将是

python3 test_foo.py --verbosetest_successful (__main__.NumbersTest)A test with subtests that will all succeed. ... ok----------------------------------------------------------------------Ran 1 test in 0.000sOK

但是,在我的实际用例中,子测试将依赖于更复杂的迭代,并检查每个子测试的非常不同的东西.因此,我宁愿让每个子测试计数并在输出中列出一个单独的测试用例(在本例中为Ran 6测试)以获得完整的图像.

这在Python中使用plain unittest模块是否可行? The nose test generator feature将单独输出每个测试,但如果可能的话,我希望与标准库保持兼容.

解决方法 你可以继承unittest.TestResult:

class NumbersTestResult(unittest.TestResult):    def addSubTest(self,test,subtest,outcome):        # handle failures calling base class        super(NumbersTestResult,self).addSubTest(test,outcome)        # add to total number of tests run        self.testsRun += 1

然后在NumbersTest中覆盖run函数:

def run(self,test_result=None):    return super(NumbersTest,self).run(NumbersTestResult())

对不起,我现在无法在完全正常工作的环境中对此进行测试,但这应该可以解决问题.

总结

以上是内存溢出为你收集整理的计算Python单元测试中的子测试全部内容,希望文章能够帮你解决计算Python单元测试中的子测试所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1196332.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存