TestSuite怎样添加多组TestCase,当一个testCase有多组数据时怎么添加到测试套件里

unittest框架里,如果一个个去运行testCase,可能不是自己所想要的顺序,这时候 就有了TestSuite的概念,TestSuite是测试套件,把TestCase添加到套件去运行,而执行TestSuite里的顺序就是添加TestCase的顺序,这是我们自己可以控制的。

TestSuite添加用例的方法有多种

1.addTest()和addTests()

addTest():添加单个用例
addTests():添加多个用例

suite.addTest(类名(‘方法名’))
suite.addTests([类名(‘方法名’),类名(‘方法名’)])

2.discover()方法

unittest框架提供了一个可以共享的实例unittest.defaultTestLoader。

discover(start_dir, pattern =‘test .py’, top_level_dir = None )
start_dir:要测试的模块名或测试用例目录;
pattern='test
.py’:表示用例文件名的匹配原则,下面的例子中匹配文件名为以“test”开头的“.py”文件,星号“*”表示任意多个字符;

当测试用例的名字不确定时,就需要用这种方法来添加到TestSuite
discover = unittest.defaultTestLoader.discover(case_path, pattern=“test*.py”)
suite.addTest(discover)

在上一篇博客里用ddt来执行login用例,就是一个用例里执行了多条数据
这时候建一个test_suite.py

import unittest
from test_login import LoginCase
from HTMLTestRunner import HTMLTestRunner

if __name__ == '__main__':
    suite = unittest.TestSuite()
    discover = unittest.defaultTestLoader.discover('test_login',pattern='test*.py')
    suite.addTest(discover)
    with open('HTMLReport.html', 'w',encoding='utf-8') as f:
        runner = HTMLTestRunner(stream=f, verbosity=2, title='测试报告', description='this is description')
        runner.run(suite)

点击运行,这时候就能运行TestSuite里所有用例
并生成html测试报告,如图所示
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/shenshenruoxi/article/details/106766508