Python Pytest会话的设置/拆卸挂钩

Python Pytest会话的设置/拆卸挂钩,python,unit-testing,hook,pytest,Python,Unit Testing,Hook,Pytest,Pytest设置和拆卸模块、类、方法的挂钩 我想在安装程序中创建自定义测试环境(在测试会话开始之前),并在所有测试完成后进行清理。 换句话说,我如何使用像setup\u session和teardown\u session这样的钩子?这些钩子对我来说很有效: def pytest_sessionstart(session): # setup_stuff def pytest_sessionfinish(session, exitstatus): # teardown_stuff

Pytest
设置和拆卸
模块、类、方法的挂钩

我想在安装程序中创建自定义测试环境(在测试会话开始之前),并在所有测试完成后进行清理。
换句话说,我如何使用像
setup\u session和teardown\u session这样的钩子?

这些钩子对我来说很有效:

def pytest_sessionstart(session):
    # setup_stuff

def pytest_sessionfinish(session, exitstatus):
    # teardown_stuff
但实际上,下一个具有会话范围的装置看起来更漂亮:

@fixture(autouse=True, scope='session')
def my_fixture():
    # setup_stuff
    yield
    # teardown_stuff

@阿里戈尔德。实际上,我没有使用任何unittest类。我正在编写使用pytestfixture的测试函数。我在链接中看到了setup\u class/teardown\u class的用法示例。但是我正在寻找像setup\u session/teardown\u session这样的东西。这就是我使用的方法(会话范围的自动使用装置)。但是,在pytest版本
4.0
中,这似乎不再有效。你知道有什么替代方案吗?@campellcl正如我所见,你误解了屈服测试和屈服固定装置之间的区别。我刚刚用pytest==4.0.0测试了我的代码,它工作得非常好)。所以,您应该在测试中使用断言,而不是yeild-tests。当我们在Parralel中运行测试时,我们是否有一个选项来实现这一点。我看到同样的代码一直在运行tests@Gauravkhurana您可以尝试在安装程序中创建一些锁定机制(如文件),在拆卸时删除,如果已经存在初始化,则跳过初始化。