前言
在我们实际工作当中,我们经常会用到unittest框架来执行用例,进行冒烟测试。如果你不懂冒烟测试,传送门链接:unittest和pytest冒烟测试哪家强?
通过unittest.main()来执行测试用例的方式:
1import unittest 2 3class 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 18if __name__ == "__main__": 19 # 运行所有的用例 20 unittest.main()
如果觉的对你有帮助,欢迎加入到902061117,群内会有不定期的分享测试资料。还会有技术大牛,业内同行一起交流技术
通过testsuit来执行测试用例的方式:
如果想只想运用某一个用例呢?怎么办?使用套件然后传入测试用例的方法名即可,看实例
1import unittest 2 3# 执行测试的类 4class UCTestCase(unittest.TestCase): 5 def setUp(self): 6 #测试前需执行的操作 7 8 def tearDown(self): 9 #测试用例执行完后所需执行的操作 10 11 # 测试用例1 12 def test1(self): 13 #具体的测试脚本 14 15 # 测试用例2 16 def test2(self): 17 #具体的测试脚本 18 19if __name__ == "__main__": 20 # 构造测试集 21 suite = unittest.TestSuite() 22 suite.addTest(UCTestCase("test1")) 23 suite.addTest(UCTestCase("test2")) 24 # 执行测试 25 runner = unittest.TextTestRunner() 26 runner.run(suite)
通过testLoader方式:
如果有多个类的情况下,我想运行某个类下面的测试用例呢?通过testLoader
1import unittest 2 3class TestCase1(unittest.TestCase): 4 def testCase1(self): 5 print("a") 6 def testCase2(self): 7 print("b") 8 9 10class TestCase2(unittest.TestCase): 11 def testCase1(self): 12 print("a1") 13 def testCase2(self): 14 print("b1") 15 16if __name__ == "__main__": 17 #此用法可以同时测试多个类 18 suite1 = unittest.TestLoader().loadTestsFromTestCase(TestCase1) 19 suite2 = unittest.TestLoader().loadTestsFromTestCase(TestCase2) 20 suite = unittest.TestSuite([suite1, suite2])
通过discover方式加载某路径下的所有测试用例
1import unittest 2 3# discover可以一次调用多个脚本 4# test_dir 被测试脚本的路径 5# pattern 脚本名称匹配规则 6 7test_dir = "./test_case" 8discover = unittest.defaultTestLoader.discover(test_dir, pattern="test*.py") 9 10# 匹配test_case目录下所有以test开头的py文件,执行这些py文件下的所有测试用例 11if __name__ == "__main__": 12 runner=unittest.TextTestRunner() 13 runner.run(discover)