python-使用unittest测试框架执行测试用例的四种方法
1. 通过unittest.main()来执行测试用例的方式:
1 import unittest 2 3 class UCTestCase(unittest.TestCase): 4 def setUp(self): 5 #测试前需执行的操作 6 ..... 7 def tearDown(self): 8 #测试用例执行完后所需执行的操作 9 ..... 10 # 测试用例1 11 def test1(self): 12 #具体的测试脚本 13 ..... 14 # 测试用例2 15 def test2(self): 16 #具体的测试脚本 17 ..... 18 if __name__ == "__main__": 19 unittest.main()
2.通过testsuit来执行测试用例的方式:
import unittest # 执行测试的类 class UCTestCase(unittest.TestCase): def setUp(self): #测试前需执行的操作 ..... def tearDown(self): #测试用例执行完后所需执行的操作 ..... # 测试用例1 def test1(self): #具体的测试脚本 ...... # 测试用例2 def test2(self): #具体的测试脚本 ...... if __name__ == "__main__": # 构造测试集 suite = unittest.TestSuite() suite.addTest(UCTestCase("test1")) suite.addTest(UCTestCase("test2")) # 执行测试 runner = unittest.TextTestRunner() runner.run(suite)
3.通过testLoader方式:
import unittest class TestCase1(unittest.TestCase): def testCase1(self): print("a") def testCase2(self): print("b") class TestCase2(unittest.TestCase): def testCase1(self): print("a1") def testCase2(self): print("b1") if __name__ == "__main__": #此用法可以同时测试多个类 suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1) suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2) suite = unittest.TestSuite([suite1, suite2]) unittest.TextTestRunner(verbosity=2).run(suite)
4.通过discover方式加载某路径下的所有测试用例
import unittest # discover可以一次调用多个脚本 # test_dir 被测试脚本的路径 # pattern 脚本名称匹配规则 test_dir = "./test_case" discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py") # 匹配test_case目录下所有以test开头的py文件,执行这些py文件下的所有测试用例 if __name__ == "__main__": runner=unittest.TextTestRunner() runner.run(discover)
下面针对上述脚本中应用到的unittest模块下的几个成员进行简单的介绍,以便于理解上述代码:
TestCase:所有测试用例的基本类,给一个测试方法的名字,就会返回一个测试用例实例;
TestSuit:组织测试用例的实例,支持测试用例的添加和删除,最终将传递给 testRunner进行测试执行;
TextTestRunner:进行测试用例执行的实例,其中Text的意思是以文本形式显示测试结果。测试的结果会保存到TextTestResult实例中,包括运行了多少测试用例,成功了多少,失败了多少等信息;
TestLoader:用来加载TestCase到TestSuite中的,其中有几个 loadTestsFrom__()方法,就是从各个地方寻找TestCase,创建它们的实例,然后add到TestSuite中,再返回一个TestSuite实例;
备注:文章转载自:https://blog.csdn.net/xugexuge/article/details/86815130?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.channel_param
浙公网安备 33010602011771号