【Python中unittest(单元测试)的简单应用】

1、unittest核心组成:

TestFixture对一个测试用例环境的搭建和销毁,一个fixture,通过覆盖TestCase的setUp()和tearDown()方法来实现。如可以在setUp()中通过建立数据库连接来初始化,在tearDown()中清除数据库产生的数据,关闭连接等

TestCase一个完整的测试流程,包括测试前的准备工作(setUp)、测试过程的代码、善后工作(tearDown)单元测试的本质就是一个测试用例,也就是一个完整的测试单元

TestSuite把多个测试用例集合在一起执行,就产生的测试套件的概念TestSuiteTestSuite用来组装单个测试用例。通过addTest()加载TestCase到TestSuite中,从而返回一个TestSuite实例

TestRunner用于测试执行一般单元测试框架中都会提供丰富的执行策略和执行结果在unittest单元测试框架中,通过TextTestRunner类提供的run()方法来执行测试套件/测试用例TestRunner可以使用图形界面、文本界面,或返回一个特殊的值等方式,来表示测试结果

2、unittest简单应用

import unittest
class UnitTest(unittest.TestCase):  # 创建继承类
    def setUp(self) -> None:  # 初始化,前置条件
        self.n = 2
        self.list_1 = [4, 2, 7, 8, 4, 0]
        print("开始")
    def test_case1(self):
        self.assertIn(2, self.list_1)  # 断言self.data中是否包含2
        print("测试用例1")
    def test_case2(self):
        self.assertTrue(self.n == 2)  # 断言条件是否为真
        print("测试用例2")
    def test_case3(self):
        self.assertFalse(self.n != 2)  # 断言条件是否为假
        print("测试用例3")
    def test_case4(self):
        self.assertNotEqual(self.n, 6)  # 断言是否不相等
        print("测试用例4")
    def test_case5(self):
        a, b = 2, 2
        self.assertEqual(a, b)  # 断言n是否等于2
        print("测试用例5")
    def tearDown(self) -> None:  # 环境还原,执行每个测试用例的后置条件
        print("结束")
if __name__ == "__main__":
    unittest.main()  # 执行当前文件所有test开头用例

3、unittest中suite套件运用

(1)执行用例方法一

if __name__ == "__main__":
    suite = unittest.TestSuite()  # 创建测试套件
    case_list = ['test_case1', 'test_case2', 'test_case3', 'test_case4', 'test_case5']
    for i in case_list:
        suite.addTest(UnitTest(i))  # 添加测试用例
        run0 = unittest.TextTestRunner(verbosity=2)
      # verbosity :表示测试报告信息的详细程度,一共三个值,默认是2
      # 0 ( 静默模式 ) :你只能获得总的测试用例数和总的结果,如:总共 100 个 失败 10 成功 90
      # 1 ( 默认模式 ) :类似静默模式,只是在每个成功的用例前面有个 . 每个失败的用例前面有个 F
      # 2 ( 详细模式 ) :测试结果会显示每个测试用例的所有相关的信息
    run0.run(suite)  # 执行套件中测试用例

(2)执行用例方法二

if __name__ == "__main__":
    suite = unittest.TestSuite()  # 创建测试套件
    suite.addTest(UnitTest('test_case1'))
    suite.addTest(UnitTest('test_case2'))
    suite.addTest(UnitTest('test_case3'))
    suite.addTest(UnitTest('test_case4'))
    suite.addTest(UnitTest('test_case5'))
    run0 = unittest.TextTestRunner(verbosity=2)
    run0.run(suite)  # 执行套件中测试用例

(3)执行用例方法三

if __name__ == "__main__":
    suite = unittest.TestSuite()#创建测试套件
    loader = unittest.TestLoader()# 创建一个加载对象
    suite .addTest(loader.loadTestsFromTestCase(UnitTest))
    run0 = unittest.TextTestRunner(verbosity=2)
    run0.run(suite)  # 执行套件中测试用例

4、测试执行结果:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值