You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pytest中调整增量测试用例的执行依赖逻辑

解决方案:调整pytest增量测试的执行依赖逻辑

我来帮你搞定这个pytest测试依赖调整的问题~你现在用@pytest.mark.incremental实现了按顺序的依赖执行,但想要让test_case3跳过对test_case2的依赖,只需要test_case1通过就能运行对吧?这里有个直观又省心的解决办法,用pytest-dependency插件来精准控制测试用例的依赖关系,比原生的incremental标记更灵活。

步骤1:安装依赖插件

如果还没装这个插件,先执行这条命令:

pip install pytest-dependency

步骤2:修改测试代码

把原来的@pytest.mark.incremental替换成pytest-dependency的标记,明确指定每个用例的依赖对象:

import pytest

class Test_aws():
    @pytest.mark.dependency(name="test_case1")
    def test_case1(self):
        # ----- some code here ----
        result = someMethodTogetResult
        assert result[0] == True
        orderID = result[1]

    @pytest.mark.dependency(depends=["test_case1"])
    def test_case2(self):
        result = someMethodTogetResult  # can be only perform once test case 1 run successfully.
        assert result == True

    @pytest.mark.dependency(depends=["test_case1"])
    def test_deleteOrder_R53HostZonePrivate(self):
        result = someMethodTogetResult
        assert result[0] == True

逻辑说明

  • 给test_case1加上name参数,方便其他用例精准指定依赖对象
  • test_case2的depends=["test_case1"]完全保留了你原来的逻辑:只有test_case1通过才会运行
  • test_deleteOrder_R53HostZonePrivate(也就是你说的test_case3)同样指定依赖test_case1,完全不关联test_case2的结果——不管test_case2成功还是失败,只要test_case1通过,这个用例就会正常运行

如果不想额外安装插件,也可以自定义incremental标记的判断逻辑,但用pytest-dependency是可读性最高、最省心的方案。

内容的提问来源于stack exchange,提问作者Dinesh Saini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:55:04