testSuite: 测试套件
通俗而讲:有时候用例也会在在很多不同文件里面 ; 这时候你想一次执行所有文件里面的所有用例 或者执行指定的用例 就可以用到
1.初始化一个testload()
# 1.初始化testload
testload=unittest.TestLoader()
- 假设现在想执行test_case 文件夹下面的所有test*开头的py文件的所有用例:
步骤一: suite=testload.discover(dir_path) //放入你指定的文件夹位置 默认会去找下面的所有test*开头的py文件作为测试用例文件,在找文件下面的test开头的方法作为测试用例;
例如:dir_path=os.path.dirname(os.path.abspath(file)) //实际位置为D:\xxfAotuPlat\test_case
方法的源代码如图
默认给的pattern参数就是test*.py
如果需要找下面其他名字开头的py文件,也可以自己传值过来 例如:
suite=testload.discover(dir_path,pattern=‘test_login2*.py’) //找test_login2开头的py文件
步骤二: runner = unittest.TextTestRunner() // new一个TextTestRunner类
步骤三: runner.run(suite) 使用这个类的run方法执行测试套件suite
总结:
1.执行文件夹下面的所有test文件下的测试用例
suite=testload.discover(dir_path,pattern=‘test_login2*.py’)
runner = unittest.TextTestRunner()
runner.run(suite)
这三句代码就表示,找到dir_path文件夹下面的所有test_login2开头的py文件下面的所有test开头的方法作为测试用例,然后执行这些所有的测试用例
如果你只想执行指定的文件下面的测试用例
看下我下面的代码 首先导入这个类 然后suitt定义的时候 加载这个类
3. 执行指定的多个文件下的测试用例写法
例如:执行test_cases_demo1文件夹下面指定的test_login和test_login3测试用例文件
from test_case.test_cases_demo1 import test_login
from test_case.test_cases_demo1 import test_login3
suite=testload.loadTestsFromModule(test_login)
suite2=testload.loadTestsFromModule(test_login3)
suite_total=unittest.TestSuite()
suite_total.addTests(suite)
suite_total.addTests(suite2)
runner = unittest.TextTestRunner()
runner.run(suite_total)
4.执行指定的类
suite3=testload.loadTestsFromTestCase()
这种写法 执行是一样的