2016-07-29 39 views
1

我写py.test程序,需要考虑以下py.test夹具代码:Pytest终结 - 序执行

@pytest.fixture(scope="class") 
def my_fixture(request): 
    def fin1(): 
     print("fin1") 
request.addfinalizer(fin1) 
    def fin2(): 
     print("fin2") 
request.addfinalizer(fin2) 

什么的执行顺序?我没有发现关于终结器执行顺序的文档。

在此先感谢。

回答

0

我想最简单的方法就是试着用-s来运行你的代码,看看打印的顺序是怎样的。

什么我建议是使用灯具产量代替,这样你就可以明确控制容易拆机顺序:

@pytest.yield_fixture(scope="class") 
def my_fixture(): 
    # do setup 
    yield 
    fin1() 
    fin2() 

与pytest 3.0(将很快发布),这也将开始工作只需使用yield与正常的@pytest.fixture修饰器,并将是推荐的拆解方式。