前言
虽然前面可以通过参数化的形式减少一个测试类的用例设计,直接通过参数化将数据传入到一个或两个测试用例中即可完成对应业务的相关数据测试。但是问题又来了:
-
我们知道测试用例的执行顺序是根据测试用例名称顺序执行的,在不改变用例名称的情况下,我们怎么来控制用例执行的顺序呢?
-
一个测试文件,我们直接执行该文件即可,但如果有多个测试文件,怎么进行组织,总不能一个个文件执行吧?
那么,如果需要解决以上两个问题,必然需要能够自由组织测试用例,组织测试用例必然需要引用到unittest框架中的测试套件(Test Suite)。
测试套件
对一个功能的验证往往是需要很多多测试用例,可以把测试用例集合在一起执行,这就产生了测试套件TestSuite 的概念,它是用来组装单个测试用例,规定用例的执行的顺序,而且TestSuite也可以嵌套TestSuite。
那么加载测试用例到套件中具体方法是哪些呢?
第一种方法:
可以通过addTest() 、addTests()加载TestCase 到TestSuite 中,再返回一个TestSuite 实例。
-
addTest
(test):表示的是添加一个测试用例或者测试套件到套件中; -
addTests
(tests):表示的是添加所有的测试用例是一个可迭代对象或者测试套件实例到测试套件中,这个等价于addTest方法实现每个元素的添加;
这两个方法的具体含义是根据官方给出的进行翻译而来的。
具体代码实例如下:
from CRMProject.Test_Object.Login_Test import LoginTest
import unittest
#通过python运行器运行执行指定的测试用例(可以通过套件运行器进行一起使用)
def test_all():
#创建一个套件对象
suite=unittest.TestSuite()
#runTest属性是基于Unittest框架的运行器运行的,而现在是TextTestRunner运行器运行,此时可以覆盖methodName属性
#可以指定任意的测试方法进行组合
suite.addTest(LoginTest("test_login_s