在 python 中是否存在与 MSUnit ClassInitialize 等效的 "attribute/tag" 到 nosetest 或 pytest?

Is there an equivalent "attribute/tag" to MSUnit ClassInitialize in python to nosetest or pytest?

According to official python guide 有办法做到这一点。但它并不完全相等,因为它没有创建 testclass 的实例,所以有很多代码我无法在 "static" 模式下访问。我需要它是一个 Setup 方法,但每个 class 实例化一次,类似于 C# 环境中的 ClassInitialize。 总结一下,我的问题是在检查测试之前我有一些配置步骤要执行,但是这个配置每次测试只需要一次 class。如果我使用设置方法,此配置代码将执行很多次(取决于当前测试中的测试数量 class)。 我知道我可以创建一个带有 "global" 标志的自定义解决方案,该标志在执行配置步骤之前进行了检查,但我认为这不是一个优雅的解决方案,我的需求已广泛涵盖在其他语言和单元测试框架中:)

非常感谢您的帮助。最好的问候。

我认为 pytest fixturesscope 参数正是您要找的。

# content of conftest.py
import pytest
import smtplib

@pytest.fixture(scope="class")
def smtp():
    return smtplib.SMTP("smtp.gmail.com")