如何在模块和功能级别使用相同的pytest夹具?

时间:2017-02-08 12:45:36

标签: python-3.x pytest fixtures

我是pytest的新手,并试图将pytest用于我的测试目的。

我拥有的TestCase布局是

common_configuration

TC_1
TC_2
TC_3

现在我需要在每个TC之前以及在完成common_configuration之前备份配置,并在完成所有TC之后恢复它。

我打算将common_configuration本身声明为模块级别的夹具..

对于配置备份和反转部分,我正在尝试将其实现为固定装置(及其反向配置的终结器)..

所以我想要实现的流程是

configurationBackup
common_Configuration  
configurationBackup
TC_1
configurationBackup.finalizer
configurationBackup
TC_2
configurationBackup.finalizer
configurationBackup
TC_3
configurationBackup.finalizer
configurationBackup.finalizer(which is done before common_Configuration)

我尝试过几件事。

  1. 将conftest.py中的configurationBackup声明为功能级夹具)作为autouse fixture)。但这里的问题是它在TC_1的common_configuration fixture之前执行

  2. 尝试使用标准pytest钩子。有一个pytest钩子pytest_runtest_call ..我在想我是否可以使用我的配置备份夹具来装饰这个钩子函数:

    @ pytest.mark.usefixtures(" configurationBackup&#34) def pytest_runtest_call(item):

  3. 但这似乎也不起作用......我的配置备份夹具根本没有被调用..

    解决此用例的其他任何方法?

0 个答案:

没有答案