批量执行用例(discover)
前面我们说了,对于不同文件用例,我们可以通过addTest()把用例加载到一个测试套件(TestSuite)来统一执行,对于少量的文件这样做没问题,但是如果有几十上百个用例文件,这样做就太浪费时间了。
unittest中的discover()方法可以批量加载用例
- start_dir:测试模块名或测试用例所在目录
- pattern='test*.py':表示用例文件名的匹配方式,此处匹配的是以test开头的.py类型的文件,*表示匹配任意字符
- top_level_dir:测试模块的顶层目录import unittest
if __name__ == "__main__":
# 测试用例目录
test_dir = r"D:\Git\Test_Framework\test_case"
# 加载测试用例
discover = unittest.defaultTestLoader.discover(test_dir, 'test*.py')
runner = unittest.TextTestRunner(verbosity=2)
runner.run(discover)
方法二:
import unittest
import os
def allCases():
'''获取所有测试模块'''
suite = unittest.TestLoader().discover(
start_dir=os.path.dirname(__file__),
pattern = 'test_*.py',
top_level_dir=None
)
return suite
if __name_=='__main__':
unittest.TextTestRunner(verbosity=2).run(allCases())
![]()
如上代码中,批量获取测试模块用到的方法是discover,discoverf方法有三个参数,第一个参数pattern是获取testCase包下所有以test开头的模块文件,到时候会获取到相应.py


浙公网安备 33010602011771号