pytest测试类生成器:测试顺序

时间:2019-02-22 20:05:16

标签: python metaprogramming pytest

我已经创建了一个测试类生成器:

import pytest

def t_1(self):
    print("1")
    assert True
def t_2(self):
    print("2")
    assert True
def t_3(self):
    print("3")
    assert True


new_cls = type("TestClass", (), 
        {   
            "test_1": t_1,
            "test_0": t_2,
            "test_2": t_3 
        })  
TestClass = new_cls

输出(python3 -m pytest -s test.py)是:

1
2
3

我的问题:在这些情况下,如何确定测试的顺序?例如,如果我使用的函数是在其他模块(或函数)中定义的,我怎么知道这些测试将以什么顺序执行?

1 个答案:

答案 0 :(得分:2)

首先,您的程序包按字母顺序排序,然后测试模块,测试类,最后​​是测试功能。

我建议避免使用依赖测试,因为这可能会导致某些问题。

如果要应用自己的排序,请尝试使用“ pytest_collection_modifyitems”钩子或“ pytest-ordering”之类的插件。