Bootstrap

Python Pytest自动化测试 改用例执行顺序

Time will tell.



pytest默认执行用例是根据项目下的文件夹名称按ascii码去收集的, module里面的用例是从上往下执行。

pytest_collection_modifyitems钩子函数就是用来改变用例执行顺序的。

pytest_collection_modifyitems功能是当测试用例收集完成后,可以改变测试用例集合的顺序。

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里面用例的顺序就可以改变用例的执行顺序了。

1、Pytest默认执行顺序

设计一个 pytest 项目,有两个包,分别在test_a.pytest_b.py写测试用例。


conftest.py的内容:

import pytestdef pytest_collection_modifyitems(session,items):
print("收集到的测试用例:%s"%items)

test_a.py的内容:

def test_a_1():
print("测试用例a_1")def test_a_2():
print("测试用例a_2")

conftest.py的内容:

def test_b_2():
print("测试用例b_2")def test_b_1
;