在unittest中,我们可以借助测试套件和装载器来管理批量的测试用例,以便于按自己的需求来执行测试用例。
1、测试套件
TestSuite可以帮助我们很好的组织测试用例,常用的方法有addTest()和addTests(),详细用法如下:
# 导入unittest
import unittest
# 创建一个测试类
class myUnitTest(unittest.TestCase):
# 创建测试用例
def test_1(self):
print(f"this is the first testcase")
def test_2(self):
print(f"this is the second testcase")
def test_3(self):
print(f"this is the third testcase")
def test_4(self):
print(f"this is the fourth testcase")
新建一个python脚本,使用套件和执行器
# 使用 addTest()方法
suite = unittest.TestSuite() # 实例化一个测试套件
suite.addTest(myUnitTest("test_1")) # 加载测试用例
suite.addTest(myUnitTest("test_2"))
suite.addTest(myUnitTest("test_3"))
# 实例化一个执行器
runner = unittest.TextTestRunner()
runner.run(suite)
# 使用addTests()方法,它可以接收一个包含多个测试用例的容器
# 使用列表、元组和字典的区别是列表、元组是按顺序执行的,字典时无序执行的
import unittest
cases1 = [myUnitTest("test_1"),
myUnitTest("test_2"),
myUnitTest("test_3")
]
cases2 = (myUnitTest("test_1"),
myUnitTest("test_2"),
myUnitTest("test_3")
)
cases3 = {myUnitTest("test_1"),
myUnitTest("test_2"),
myUnitTest("test_3")
}
suite = unittest.TestSuite()
suite.addTests(cases3)
runner = unittest.TextTestRunner()
runner.run(suite)
2、装载器
(1)TestLoader
# 创建一个装载器对象
testLoader = unittest.TestLoader()
# 创建suite
suite = unittest.TestSuite()
# 使用装载器对象的loadTestFromTestCase()方法
suite.addTest(testLoader.loadTestsFromTestCase(myUnitTest))
# 使用装载器对象的loadTestFromName()方法,loadTestFromNames()可以一次加入多个测试类
suite.addTest(testLoader.loadTestsFromName("UintTest_demo.myUnitTest"))
# 使用装载器对象的loadTestFromModule()方法, 直接导入模块
suite.addTest(testLoader.loadTestsFromModule(UintTest_demo))
runner = unittest.TextTestRunner()
runner.run(suite)
(2)defaultTestLoader
# 使用discover导入多个模块
module_path = './'
# 装载所有以"_demo"结尾的测试模块
discover = unittest.defaultTestLoader.discover(module_path, pattern="*_demo.py")
runner = unittest.TextTestRunner()
runner.run(discover)