在python unittest TestLoader中指定特定的测试用例

时间:2014-01-14 14:06:28

标签: python unit-testing

我有以下文件夹结构。

Unit
    smoke.py
    Test1
         Test1.py
    Test2
         Test2.py

两个测试文件各有两个测试用例。

smoke.py包含

suite1 = unittest.TestLoader().discover('Test1', pattern = "Test*.py")
suite2 = unittest.TestLoader().discover('Test2', pattern = "Test*.py")
alltests = unittest.TestSuite((suite1, suite2))
unittest.TextTestRunner(verbosity=2).run(alltests)

上面的代码运行了4个预期的测试用例。

有没有办法从test1.py和test2.py运行一些特定的测试用例,我可以在上面的代码中将这些测试用例显式添加到suite1和suite 2中。

如果Test1.py在类Test1中包含测试用例名称test_system,TestLoader如何加载该特定测试用例而不是运行该模块中的所有测试用例。

2 个答案:

答案 0 :(得分:6)

您可以将测试加载程序配置为仅运行具有特定前缀的测试:

loader = unittest.TestLoader()
loader.testMethodPrefix = "test_prefix"# default value is "test"

suite1 = loader.discover('Test1', pattern = "Test*.py") 
suite2 = loader.discover('Test2', pattern = "Test*.py")
alltests = unittest.TestSuite((suite1, suite2))
unittest.TextTestRunner(verbosity=2).run(alltests)

答案 1 :(得分:0)

一个很好的解决方案可能是摆脱smoke.py而是安装nose。 Nose是一个支持包含/排除规则的测试发现框架。