我有使用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);
}
我希望我的所有测试在测试之前和之后运行常见的设置和拆卸功能。我想用所有测试代码的最少修改来做到这一点。
由于
答案 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”)。