En général, vous pouvez configurer le comportement de pratiquement n'importe quelle partie de pytest en utilisant ses hooks bien spécifiés.
Dans votre cas, vous voulez le hook "pytest_collection_modifyitems", qui vous permet de réorganiser les tests collectés sur place.
Cela dit, il semble que l'ordonnancement de vos tests devrait être plus facile - après tout, c'est du Python! J'ai donc écrit un plugin pour ordonner les tests: "pytest-ordering". Consultez la documentation ou installez-la depuis pypi. Pour l'instant, je recommande d'utiliser @pytest.mark.first
et @pytest.mark.second
, ou l'un des marqueurs @pytest.mark.order#
, mais j'ai quelques idées sur des APIs plus utiles. Les suggestions sont les bienvenues :)
Édition: pytest-ordering semble abandonné pour le moment, vous pouvez également consulter pytest-order (un fork du projet original par l'auteur).
Édition2: Dans pytest-order, seul un marqueur (order
) est pris en charge, et les exemples mentionnés seraient @pytest.mark.order("first")
, @pytest.mark.order("second")
, ou @pytest.mark.order(#)
(avec # étant un nombre quelconque).