unittest测试用例执行顺序

本文详细介绍了如何使用Python的unittest框架编写测试用例。通过一个具体示例,展示了如何定义测试类和方法,设置前置和后置条件,以及如何运行测试。执行结果显示,测试用例按照预定顺序执行,且只有以test开头的方法被视为测试用例。

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

import  unittest
#定义一个类,并继承类
class TestCase(unittest.TestCase):
    # 定义测试用例:前置条件、后置条件、用例1、用例2
    def setUp(self):
        print("start!")
    def tearDown(self):
        print("end!")
    def test01(self):
        print("测试用例1")
    def test03(self):
        print("测试用例3")
    def test02(self):
        print("测试用例2")
    def addtest(self):
        print("add方法")
#运行主方法
if __name__=='__main__':
    unittest.main()

执行结果:

start!
测试用例1
end!
start!
测试用例2
end!
start!
测试用例3
end!

可见执行顺序,setup-用例-teardown

用例按照顺序执行:01-02-03

且只执行test开头的用例

 

### 关于 `unittest` 测试用例执行及相关概念 #### 测试用例标识符 在 Python 的 `unittest` 框架中,测试用例通常是以 `test_` 开头的方法命名来标识。这些方法会被自动识别并作为测试用例运行[^1]。 #### 加载顺序 当使用 `unittest.TestLoader()` 来加载测试用例时,默认会按照 ASCII 字典序排列测试方法名,并依次执行它们。如果需要自定义加载顺序,则可以通过继承 `TestLoader` 并重写其行为实现特定需求[^2]。 #### 固件操作 (`setUp`, `tearDown`) 固件(Fixture)是指为了支持测试而创建的服务对象或状态设置。具体来说: - **`setUp`**: 在每个测试方法运行之前调用,用于初始化必要的资源或环境配置。 - **`tearDown`**: 在每个测试方法运行之后调用,负责清理资源或将环境恢复到初始状态。 这种机制确保了每次测试都在独立且一致的状态下进行,从而提高测试的可靠性和可重复性[^3]。 #### 使用 `TestSuite.addTest()` 除了通过 `TestLoader.loadTestsFromTestCase()` 装载整个中的所有符合条件的测试方法外,还可以手动向 `TestSuite` 添加单个测试方法实例。例如: ```python import unittest class ExampleTest(unittest.TestCase): def test_method_a(self): self.assertEqual(1, 1) def test_method_b(self): self.assertNotEqual(1, 2) if __name__ == "__main__": suite = unittest.TestSuite() suite.addTest(ExampleTest('test_method_a')) suite.addTest(ExampleTest('test_method_b')) runner = unittest.TextTestRunner() runner.run(suite) ``` 此方式提供了更精细的选择控制能力[^2]。 #### 控制级别与发现功能 (`discover` 方法) 对于大型项目而言,可能有多个模块包含不同的测试用例集合。此时可以利用 `unittest.defaultTestLoader.discover(start_dir, pattern='test*.py')` 动态查找指定目录下的所有匹配模式文件内的测试案例。这极大地简化了跨多个子包管理复杂测试场景的工作量[^1]。 --- ### 总结选项分析 基于以上讨论内容,以下是针对问题提到的关键术语及其作用总结成表供参考选择: | 名词 | 描述 | |-----------------|----------------------------------------------------------------------| | 测试用例标识符 | 需要以 `test_` 前缀开头的方法名称 | | 加载顺序 | 默认按字典升序排列 | | 固件操作 | 包括 `setUp` 和 `tearDown` | | TestSuite | 可用来组合多个 TestCase 或其他 TestSuites | | addTest | 显式添加单独的测试项 | | Fixture 级别 | 单独函数级(`setup/teardown`)或者级别(`setUpClass/tearDownClass`) | | 控制 | 自动扫描路径内符合规则的所有 .py 文件 | ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值