当前位置: 代码迷 >> 综合 >> 3.unittest_unittest批量执行(discover)
  详细解决方案

3.unittest_unittest批量执行(discover)

热度:59   发布时间:2023-09-19 01:36:07.0

我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了。

加载用例后,用unittest里面的TextTestRunner这里类的run方法去一次执行多个脚本的用例。

一、新建测试项目

1.pycharm左上角File>New Projetc>Pure Python,在location位置命名一个测试工程的名称:unittestDemo,然后保存
2.选中刚才新建的工程右键>New>Python Package>新建case文件夹,并且在文件夹下常见test文件;
3.unittest_unittest批量执行(discover)

3.在t这个项目下面创建一个脚本run_all_case.py,接下来用这个脚本去批量执行所有的用例。

二、diascover加载测试用例

  1. discover方法里面有三个参数:
  • case_dir:这个是待执行用例的目录。
  • pattern:这个是匹配脚本名称的规则,test*.py意思是匹配test开头的所有脚本。
  • top_level_dir:这个是顶层目录的名称,一般默认等于None就行了。

2.discover加载到的用例是一个list集合,需要重新写入到一个list对象testcase里,这样就可以用unittest里面的TextTestRunner的run方法去执行。

3.最后使用unittest.TextTestRunnerrun方法来运行测试用例;

import unittest
import os
# 用例路径
case_path = os.path.join(os.getcwd(), "case")
# 报告存放路径
report_path = os.path.join(os.getcwd(), "report")
def all_case():discover = unittest.defaultTestLoader.discover(case_path,pattern="test*.py",top_level_dir=None)print(discover)return discoverif __name__ =="__main__":runner = unittest.TextTestRunner()runner.run(all_case())