Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python单元测试TestLoader中指定特定的测试用例_Python_Unit Testing - Fatal编程技术网

在Python单元测试TestLoader中指定特定的测试用例

在Python单元测试TestLoader中指定特定的测试用例,python,unit-testing,Python,Unit Testing,我有以下文件夹结构 Unit smoke.py Test1 Test1.py Test2 Test2.py 两个测试文件各有两个测试用例 文件smoke.py包含 上面的代码运行了预期的四个测试用例 是否有一种方法可以从文件test1.py和test2.py运行一些特定的测试用例,我可以在上面的代码中将这些测试用例显式地添加到suite1和suite2中 如果Test1.py在类Test1中包含一个testcase name test

我有以下文件夹结构

Unit
    smoke.py
    Test1
         Test1.py
    Test2
         Test2.py
两个测试文件各有两个测试用例

文件smoke.py包含

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

是否有一种方法可以从文件test1.py和test2.py运行一些特定的测试用例,我可以在上面的代码中将这些测试用例显式地添加到suite1和suite2中


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

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

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

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)

我担心有人会这么说,看来我得用鼻子读了。谢谢瑞吉斯,但我用鼻子。如果我回答了你的具体问题,请把这个答案标记为正确答案。
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)