python单元测试uuitest模块

本文介绍了Python单元测试的概念,包括测试用例(Test Case)、Test Suite、Test Loader和TextTestRunner等组件的工作原理。重点讲解了使用unittest模块如何设置setup和teardown,以确保每个测试用例在执行前后都能正确地准备和清理环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概念

  • 一、什么是单元测试&单元测试的对象
    定义:单元测试是用来对一个模块、一个函数或者一个类来进行正确性检验的测试工作。

test case:一个testcase的实例就是一个测试用例。测试前准备环境的搭建(setUp),执行测试代码(run), 以及测试后环境的还原(tearDown)
TestSuite:多个测试用例集合在一起。
TestLoader:用来加载Testcase到TestSuite中。
TextTestRunner:用来执行测试用例,其中run(test)会执行 TestSuite/TestCase中的run(result)方法。
test fixture:测试用例环境的搭建和销毁

unittest 模块可以通过命令行运行模块、类和 独立测试方法的测试:

python -m unittest test_module1 test_module2
python -m unittest test_module.TestClass
python -m unittest test_module.TestClass.test_method

批量执行代码

python -m unittest discover
####
-s 参数表示 路径,默认当前路径
-p 表示要匹配的py文件,默认test*.py
####
python -m unittest discover -s project_directory -p "*_test.py"
python -m unittest discover project_directory "*_test.py"

setup和teardown

import unittest

class Test_Math(unittest.TestCase):

    #每执行一个用例,都会执行setup()和teardown()方法
    #如果跑所有用例,只运行一次前提条件和结束条件。则用setupclass()和teardownclass()
    def setUp(self):
        print("测试用例执行前的初始化操作========")

    def tearDown(self):
        print("测试用例执行完之后的收尾操作=====")


    def test_addTwoNum_01(self):
        print(5+7)

    def test_subTwoNum_02(self):
        print(3-2)
结果:
测试用例执行前的初始化操作========
12
测试用例执行完之后的收尾操作=====
测试用例执行前的初始化操作========
1
测试用例执行完之后的收尾操作=====

设置setup和teardown:每次用例执行前都会执行初始化条件和结束条件

setupClass和teardownClass

import unittest

class Test_Math(unittest.TestCase):

    #如果跑所有用例,只运行一次前提条件和结束条件。则用setupclass()和teardownclass()
    @classmethod
    def setUpClass(cls):
        print("在所有的测试用例执行之前,只执行一次============")

    @classmethod
    def tearDownClass(cls):
        print("在所有的测试用例执行之后,只执行一次============")

    def test_addTwoNum_01(self):
        print(5+7)

    def test_subTwoNum_02(self):
        print(3-2)

#python3中写不写都会执行的
if __name__ == '__main__':  
    unittest.main()


结果:
Testing started at 22:19 ...
在所有的测试用例执行之前,只执行一次============
12
1
在所有的测试用例执行之后,只执行一次============
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值