前言
有一些小伙伴一直想改变pytest用例的执行顺序,实际上我们在用例设计原则上用例就不要有依赖顺序。
pytest默认执行用例是先根据项目下的文件夹名称按ascii码去收集的,module里面的用例是从上往下执行的.
pytest_collection_modifyitems 这个钩子函数顾名思义就是改变用例的执行顺序。
pytest_collection_modifyitems
pytest_collection_modifyitems 功能是当测试用例收集完成后,可以改变测试用例集合(items)的顺序
def pytest_collection_modifyitems(session, config,items):
'''called after collection is completed.
you can modify the ``items`` list
:param _pytest.main.Session session: the pytest session object
:param _pytest.config.Config config: pytest config object
:param List[_pytest.nodes.Item] items: list of item objects
'''
items是用例对象的一个列表,改变items里面用例的顺序就可以改变用例的执行顺序了。
pytest默认执行顺序
先设计一个简单的 pytest 项目,有a和b两个包,分别在 test_a.py 和 test_b.py 写测试用例