在pytest的最新版本中,很容易创建像这样的函数,类,模块或会话范围的灯具:
@pytest.fixture(scope="module")
def db():
return DB()
这将创建一个仅为每个使用它的python模块调用一次的工具。
但是每个python包需要调用一次的灯具呢?
(使用nose,可以使用包的__init__.py
中的setUp / tearDown方法完成)
答案 0 :(得分:5)
对于包或目录级别的灯具,您可以使用conftest.py
在您需要的目录中的scope='session'
文件中声明灯具。一旦包/目录中的第一个测试使用它,就会实例化fixture。这里是an example但是,如果fixture函数注册了一个终结器,你可能会看到它在该目录中的最后一次测试之后没有直接执行。我认为pytest可以用来支持更急切的拆解或者在需要时引入“目录”范围。通常,如果拆解执行的时间稍晚,只要它不会执行得太早,这不是一个大问题:)请注意,显然Jason intends to drop package-level setup/teardown support for nose
无论如何,如果您需要更加急切/准确的pytest拆解,请随意open an issue。