首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块级夹具未运行

模块级夹具未运行
EN

Stack Overflow用户
提问于 2020-10-05 18:52:01
回答 1查看 2.1K关注 0票数 2

我希望有一个特定的设置/拆卸夹具的一个测试模块。显然,我希望它在模块中的所有测试之前运行一次安装代码,在完成所有测试之后运行一次。

所以,我想出了这个:

代码语言:javascript
复制
import pytest


@pytest.fixture(scope="module")
def setup_and_teardown():
    print("Start")
    yield
    print("End")


def test_checking():
    print("Checking")
    assert True

这不是这样的。只有当我为模块中的第一个测试提供setup_and_teardown参数时,它才能起作用。

它应该是这样工作的吗?如果我将它标记为module级别的夹具,它不是应该自动运行吗?

EN

Stack Overflow用户

回答已采纳

发布于 2020-10-05 19:36:54

模块作用域固定装置的行为与任何其他作用域的固定装置相同--只有在测试中明确通过、使用@pytest.mark.usefixtures标记或设置autouse=True时,才能使用它们:

代码语言:javascript
复制
@pytest.fixture(scope="module", autouse=True)
def setup_and_teardown():
    print("setup")
    yield
    print("teardown")

对于执行安装/解压的模块范围和会话范围的固定装置,这是最常用的选项。

对于产生在测试中访问的对象(例如只能分配一次的扩展资源)的夹具,这是没有意义的,因为夹具必须通过测试才能访问。而且,并不是所有的测试都需要它。

票数 3
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64214525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档