批量执行用例(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

posted @ 2019-02-25 17:45  燕鸻  阅读(281)  评论(0)    收藏  举报