在 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 fixtures 的 scope
参数正是您要找的。
# content of conftest.py
import pytest
import smtplib
@pytest.fixture(scope="class")
def smtp():
return smtplib.SMTP("smtp.gmail.com")
According to official python guide 有办法做到这一点。但它并不完全相等,因为它没有创建 testclass 的实例,所以有很多代码我无法在 "static" 模式下访问。我需要它是一个 Setup 方法,但每个 class 实例化一次,类似于 C# 环境中的 ClassInitialize。 总结一下,我的问题是在检查测试之前我有一些配置步骤要执行,但是这个配置每次测试只需要一次 class。如果我使用设置方法,此配置代码将执行很多次(取决于当前测试中的测试数量 class)。 我知道我可以创建一个带有 "global" 标志的自定义解决方案,该标志在执行配置步骤之前进行了检查,但我认为这不是一个优雅的解决方案,我的需求已广泛涵盖在其他语言和单元测试框架中:)
非常感谢您的帮助。最好的问候。
我认为 pytest fixtures 的 scope
参数正是您要找的。
# content of conftest.py
import pytest
import smtplib
@pytest.fixture(scope="class")
def smtp():
return smtplib.SMTP("smtp.gmail.com")