TestCase是一个测试用例,一个完整的测试用例包括:测试前准备setUp、测试执行代码run、测试后环境还原tearDown。
TestSuite,是多个测试用例的集合,测试套件TestSuite可以嵌套测试套件。
TestLoader加载用例到TestSuite;
TextTestRunner执行测试用例,保存测试结果到TextTestResult中。
Test fixture是一个用例环境的搭建和销毁过程。
1、测试用例执行过程:
测试用例Testcase完成后,使用TestSuite的TestLoader方法加载到测试套件,
然后有TextTestRunner运行测试套件,把测试结果保存在TextTestResult中,,每一个测试方法都必须以test开头,否则不会被unittest识别,
在测试执行过程中,我们使用到一个参数:verbosity(0-不输出每一项执行结果、1-输出每一个测试结果、2-输出详细执行结果。)
2、测试断言:
3、uniitest
- 跳过用例执行skip
三种跳过用例执行方法: a、unittest.skip(msg) 直接跳过用例执行,不进行条件判断; b、unittest.skipIf(condtion) 满足条件不执行 c、unittest.skipUnless(condtion) 满足条件才执行
- 加载测试套件Suite
import os import unittest # 实例化测试套件 suite = unittest.TestSuite() # 获取case目录以下所有test开头的测试用例文件 case_path = os.path.join(os.getcwd(), "case") discover = unittest.defaultTestLoader.discover(case_path, pattern="test*.py", top_level_dir=None) suite.addTests(discover) # 获取目录case1和目录下case2测试用例文件 suite.addTest() # 使用makeSuite方法添加类或类下以test开头的测试用例 suite.addTests(unittest.makeSuite(testclassname, 'test')) suite.addTests(unittest.makeSuite(testclassname)) # 直接添加测试类中test开头的测试方法 suite.addTests(testclassname('test')) # 使用defaultTestLoader添加测试用例 # 使用testclass加载测试用例 unittest.TestLoader().loadTestsFromTestCase(testclass) # 使用testmodule加载测试用例 unittest.TestLoader().loadTestsFromModule(modulename) # 字符串为使用模块、类、用例名称加载,注意路径完整性 unittest.TestLoader().loadTestsFromName('str') # 字符串列表为使用模块、类、用例名称加载,注意路径完整性 unittest.TestLoader().loadTestsFromNames('list')
【参考】:https://huilansame.github.io/huilansame.github.io/archivers/python-unittest