按顺序执行pytest

Execute pytest in order

您好,我正在检查“http://pytest-ordering.readthedocs.org/en/develop/”以按顺序执行 pytest

我尝试了下面的代码,

import pytest

@pytest.mark.order2
def test_foo():
    assert True

@pytest.mark.order1
def test_bar():
    assert True

但执行仍然是随机的。有人可以告诉我如何解决吗?

我认为项目维护者没有太多时间支持该项目了:last update was 5 months ago and the issue tracker 充满了相关未解决的问题。其中之一与您的问题密切相关:


我实际上发现 run(order=N) 效果更好,但不要使用负索引 - 它们是 not going to work。以下对我有用:

import pytest

@pytest.mark.run(order=3)
def test_three():
    assert True

@pytest.mark.run(order=4)
def test_four():
    assert True

@pytest.mark.run(order=2)
def test_two():
    assert True

@pytest.mark.run(order=1)
def test_one():
    assert True

生产:

test.py::test_one PASSED
test.py::test_two PASSED
test.py::test_three PASSED
test.py::test_four PASSED