pytest默认执行用例顺序是根据项目下文件名称按ascii码去收集运行的,文件里的用例是从上往下按顺序执行的.
pytest_collection_modifyitems 这个函数顾名思义就是收集测试用例、改变用例的执行顺序的。
一、pytest_collection_modifyitems 是测试用例收集完成后,可以改变测试用例集合(items)的顺序,items是用例对象的一个列表,改变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
'''
二、pytest执行全部文件,默认执行顺序
conftest.py
import pytest
def pytest_collection_modifyitems(session, items):
print("收集的测试用例:%s"%items)
test_02.py
import pytest
class Test(object):
def test_three_03(self):
"""用例描述"""
print("用例3——橙子")
def test_four_04(self):
"""用例描述"""
print("用例4——橙子")
if __name__ == '__main__':
pytest.main(['-s', ''])
test_C_01.py
import pytest
class Test(object):
def test_two_02(self):
"""用例描述"""
print("用例2——橙子")
def test_one_01(self):
"""用例描述"""
print("用例1——橙子")
if __name__ == '__main__':
pytest.main(['-s&