Python+Selenium框架篇12-discover()-执行脚本方法 -加载不同模块(路径)下所有用例执行

本文补充unittest中discover()方法,加载不同模块(路径)下所有用例执行
本编作为makeSuite()方法的一个补充,在实际项目中,我们调试阶段可能需要执行固定几个模块的用例(一个目录下个别模块,不是所有模块)。
demo如下:
在这里插入图片描述
上图YPT目录下是我们所有的用例的模块,但我们只想执行前三个模块,废话不多说
代码如下:

import unittest

suite = unittest.TestSuite()    # 构造一个测试套件suite
loader = unittest.TestLoader()      # 实例化,定义一个存放获取用例casefor name in moudleName:	# moudleName是我们需要执行的三个模块名[moudle1, moudle2, moudle3]
   current_path = Any_Path(projectName, name)		# 拼接每个模块的绝对路径,Any_Path()是我自己封装的方法,你们可以用自己的。
   discover = loader.discover(start_dir=current_path, pattern=matching, top_level_dir=projectName)    # 注意:projectName 为'YPT'用例模块的上级目录名
   suite.addTest(discover)     # 加载所有模块下的用例case


if __name__=="__main__":

    runner = unittest.TextTestRunner()
    runner.run(suite)	   #开始执行测试套件

这里需要注意:discover()方法的三个参数,star_dir:模块的绝对路径;pattern:需要去匹配的用例py文件,一般写test*.py,这个根据你们实际项目写;top_level_dir:这个参数一般都我们都写的None,只适用于执行一次,for循环再次执行就会被赋值成上个执行的start_dir路径值,就会导致后续执行报错“Path must be within the project”。因此这里我们不能再写None,需要给它赋值:运行模块的上一级目录名(存放py文件模块的上一级这里注意是目录名,不是绝对路径)。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值