In general you can configure the behavior of basically any part of pytest using its well-specified hooks.
In your case, you want the "pytest_collection_modifyitems" hook, which lets you re-order collected tests in place.
That said, it does seem like ordering your tests should be easier -- this is Python after all! So I wrote a plugin for ordering tests: "pytest-ordering". Check out the docs or install it from pypi. Right now I recommend using @pytest.mark.first
and @pytest.mark.second
, or one of the @pytest.mark.order#
markers, but I have some ideas about more useful APIs. Suggestions welcome :)
Edit: pytest-ordering seems abandoned at the moment, you can also check out pytest-order (a fork of the original project by the author).
Edit2: In pytest-order, only one marker (order
) is supported, and the mentioned examples would read @pytest.mark.order("first")
, @pytest.mark.order("second")
, or @pytest.mark.order(#)
(with # being any number).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…