如何在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
相关产品推荐
相关产品推荐

