一. 简介
Pytest-ordering 是一个 Pytest 插件,可自定义 Pytest 测试用例的执行顺序。这对于确保特定的测试用例在其他测试用例之前或之后运行非常有用。
1.1 使用场景
对于集成测试,经常会有上下文依赖关系的测试用例。比如 10 个步骤,拆成 10 条 case,这时候能知道到底执行到哪步报错。而用例默认执行顺序是自上而下执行的。这时可以通过 setup,teardown 和 fixture 来解决。也可以使用对应的插件。
1.2 使用步骤
安装:
pip install pytest-ordering用法:
@pytest.mark.run(order=2)注意:多个插件装饰器(>2)的时候,有可能会发生冲突。
代码示例:不使用 Pytest-ordering
importpytest#@pytest.mark.run(order=2)@pytest.mark.thirddeftest_foo():assertTrue# @pytest.mark.run(order=1)@pytest.mark.firstdeftest_bar():assertTrue# @pytest.mark.run(order=2)@pytest.mark.seconddeftest_bar1():assertTrue- 运行结果:可以看出是按照顺执行的测试用例
- 运行结果:可以看出是按照顺执行的测试用例
代码示例:使用 Pytest-ordering
importpytest@pytest.mark.run(order=2)@pytest.mark.thirddeftest_foo():assertTrue@pytest.mark.run(order=1)@pytest.mark.firstdeftest_bar():assertTrue@pytest.mark.run(order=2)@pytest.mark.seconddeftest_bar1():assertTrue- 再次运行,结果为1、test_bar,2、test_bar1,3、test_foo