是否可以在 pytest 中禁用固定装置?
我想这样做的原因是我正在使用我自己的固定装置框架,目前是这样的(不同固定装置机制的优缺点不是这个问题的重点):
import functools
def with_fixtures(test_func):
@functools.wraps(test_func)
def wrapper(self, *args, **kwargs):
# This simplified code reproduces the problem -- the real implementation passes
# an object instead of a dummy
return test_func(self, "dummy fixtures", *args, **kwargs)
return wrapper
class Test:
@with_fixtures
def test(self, fixtures):
print("fixtures %s" % (fixtures, ))
pass
如果我使用另一个框架运行该测试,我的with_fixtures
装饰器会将一个fixtures 对象传递给测试。如果我对此运行 pytest,我会得到:
def test(self, fixtures):
E fixture 'fixtures' not found
为了禁用 pytest 固定装置,我宁愿在本地使用装饰器标记单个测试,也不愿将代码添加到conftest.py
我的测试没有显式依赖的特殊文件中,这样就更容易在本地查看为什么测试的行为如此。