python unittest控制用例的执行顺序

本文探讨了在unittest框架中实现测试方法顺序控制的方法,包括通过TestSuite手动添加及利用方法名排序来确保依赖性测试的正确执行顺序。

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

为什么要进行顺序控制呢?使用过testng的同学就知道,它相对于junit来说有更强大的功能,其中的一个功能就是依赖测试。什么是依赖测试呢?简单的说一下就是,A方法运行时,其中有个变量的取值是B方法的动态产出值。这样就必须先执行B方法。testng的test方法有dependson属性来制定方法的依赖。但是向python的unittet框架,他类似于junit,没有依赖测试的功能。unittest的main()方法执行用例的顺序是按照测试类、测试方法的名字的ASCII顺序来执行测试方法。如果想要控制执行顺序,有以下两种方式:

1、 通过TestSuite按照顺序添加想要执行的方法

     suite = unittest.TestSuite()

     suite.addTest(TestBddClass("method_name_c"))

     suite.addTest(TestBddClass("method_name_a"))

     这样方法的执行顺序就是先执行method_name_c,在执行method_name_a

   这种方式的确定是,你必须要一个个手动去添加,测试过程中,用例个数不可能很少,这样就懵逼了吧。看下一种方式吧。

2、顺应testunit的执行顺序,就是通过控制方法名字来实现。

    比如,我要执行一个交易过程的接口测试,该过程包含两个过程,一个是createOrder(创建订单),一个是confirmOrder(确认订单),并且confirmOrder需要交易ID,而交易ID是createOrder接口的动态产出,所以必须要先执行createOrder。

    如果名字是testCreateOrder和testConfirmOrder的话,那么肯定先执行testConfirmOrder。怎么办呢?那就改名字呗,比如test_a_CreateOrder, test_b_ConfirmOrder

 

说的有点啰嗦,但大概是这个意思。

     

转载于:https://www.cnblogs.com/byron0918/p/6853645.html

### 使用 Python `unittest` 框架执行测试 #### 测试环境准备 为了使用 `unittest` 执行测试,需先确认已安装 Python。通常情况下,Python 自带 `unittest` 库,无需额外安装[^4]。 #### 创建待测试的模块 假设有一个名为 `calculator.py` 的简单计算函数文件: ```python def add(x, y): return x + y def subtract(x, y): return x - y ``` #### 编写测试 创建一个新的 Python 文件用于定义测试类和方法。此文件应继承自 `unittest.TestCase` 并实现具体测试逻辑: ```python import unittest from calculator import add, subtract class TestCalculator(unittest.TestCase): def test_add(self): result = add(2, 3) self.assertEqual(result, 5) def test_subtract(self): result = subtract(7, 5) self.assertEqual(result, 2) if __name__ == '__main__': unittest.main() ``` 上述代码片段展示了如何基于给定的功能编写两个基本单元测试:加法运算验证以及减法运算验证[^1]。 #### 控制台运行测试脚本 可以直接在命令行中通过如下方式启动测试程序: ```bash python -m unittest test_calculator.py ``` 这里假定测试文件被命名为 `test_calculator.py`。 当不指定特定顺序时,默认按字母表顺序依次调用各个测试方法;如果希望调整这一行为,则可通过构建 `TestSuite` 对象来自定义执行序列[^2]。 #### 进一步优化与扩展 对于更复杂的项目结构或是需要更多配置选项的情况,还可以考虑采用其他高级特性如参数化测试、mock对象模拟外部依赖等技术手段进一步增强测试能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值