Bootstrap

pytest多文件自定义用例执行顺序,非order


前言

一、pytest_collection_modifyitems是什么?

示例:pytest_collection_modifyitems是pytest收集用例的钩子函数,只要我们通过他来收集用例并修改顺序,就能达到跨文件自定义执行顺序的效果。

二、使用步骤

1.TestCase目录下新建conftest.py文件

2.使用钩子函数来收集用例并修改执行顺序

代码如下(示例):

def pytest_collection_modifyitems(session, items):
    # 期望用例顺序
    appoint_items = ["test_login","test_aa"]

    # 指定运行顺序
    run_items = []
    for i in appoint_items:
        for item in items:
            module_item = item.name.split("[")[0]
            if i == module_item:
                run_items.append(item)

    for i in run_items:
        run_index = run_items.index(i)
        items_index = items.index(i)

        if run_index != items_index:
            n_data = items[run_index]
            run_index = items.index(n_data)
            items[items_index], items[run_index] = items[run_index], items[items_index]
;