python– 发现后过滤测试

python– 发现后过滤测试,第1张

概述我目前正在运行这样的测试:tests = unittest.TestLoader().discover('tests') unittest.TextTestRunner().run(tests) 现在我想运行一个特定的测试,知道他的名字(比如test_valid_user),但不知道他的班级.如果有一个以上的测试名称比我想要运行所有这些测试.发现后有没有办法

我目前正在运行这样的测试:

tests = unittest.TestLoader().discover('tests')unittest.TextTestRunner().run(tests)

现在我想运行一个特定的测试,知道他的名字(比如test_valID_user),但不知道他的班级.如果有一个以上的测试名称比我想要运行所有这些测试.发现后有没有办法过滤测试?

或者也许还有其他解决方案可以解决这个问题(请注意,不应该从命令行完成)?

最佳答案您可以使用unittest.loader.TestLoader.testMethodPrefix实例变量根据与“test”不同的前缀更改测试方法过滤器.

假设你有一个带有这个单元测试之王的测试目录:

import unittestclass MyTest(unittest.TestCase):    def test_suite_1(self):        self.assertFalse("test_suite_1")    def test_suite_2(self):        self.assertFalse("test_suite_2")    def test_other(self):        self.assertFalse("test_other")

您可以编写自己的发现函数,仅发现以“test_suite_”开头的测试函数,例如:

import unittestdef run_suite():    loader = unittest.TestLoader()    loader.testMethodPrefix = "test_suite_"    suite = loader.discover("tests")    result = unittest.TestResult()    suite.run(result)    for test,info in result.failures:        print(info)if __name__ == '__main__':    run_suite()

注意:discover方法中的参数“tests”是一个目录路径,因此您可能需要编写一个完整路径.

结果,你会得到:

Traceback (most recent call last):  file "/path/to/tests/test_my_module.py",line 8,in test_suite_1    self.assertFalse("test_suite_1")AssertionError: 'test_suite_1' is not falseTraceback (most recent call last):  file "/path/to/tests/test_my_module.py",line 11,in test_suite_2    self.assertFalse("test_suite_2")AssertionError: 'test_suite_2' is not false
总结

以上是内存溢出为你收集整理的python – 发现后过滤测试全部内容,希望文章能够帮你解决python – 发现后过滤测试所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/langs/1206340.html

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

发表评论

登录后才能评论

评论列表(0条)

保存