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

posted @ 2020-09-02 10:57  进击的二lu  阅读(882)  评论(0)    收藏  举报