如何在py.test中的子目录中运行所有测试的设置和拆除功能?

时间:2016-10-20 13:33:08

标签: python pytest

我有使用py.test for python 2.7和py.test 3.0运行的单元测试。我的测试目录是这样的:

public void animationsCompleted()
{
    //  Destroy fragment.
    getActivity().getSupportFragmentManager()
        .beginTransaction()
        .setCustomAnimations(R.anim.slide_in_up, R.anim.slide_out_up, R.anim.slide_out_down, R.anim.slide_in_down);
}

我希望我的所有测试在测试之前和之后运行常见的设置和拆卸功能。我想用所有测试代码的最少修改来做到这一点。

由于

1 个答案:

答案 0 :(得分:1)

如果我理解正确,你可以编写一个会话作用域(scope param)并使其自动使用(autouse param)。我以“屈服夹具”为例。请注意,pytest.yield_fixture已弃用,因为pytest 3.0和pytest.fixture允许使用yield

import pytest

@pytest.fixture(scope="session", autouse=True)
def callattr_ahead_of_alltests(request):
    print 'run_pre_start'
    yield
    print 'run_after_finish'

它将在第一次测试之前运行(打印“run_pre_start”),并且在yield之后的部分将在所有测试之后运行(打印“run_after_finish”)。