2016-12-05 21 views
0

According to official python guide есть способ сделать это. Но это не совсем точно из-за того, что он не создает экземпляр testclass, поэтому есть много кода, который я не могу достичь в «статическом» режиме. Который мне нужен, это метод установки, но только один раз для создания экземпляра класса, аналогичный ClassInitialize в среде C#. Сумаризация, моя проблема. У меня есть некоторые шаги по настройке, которые должны быть выполнены до проверки теста, но эта конфигурация нужна только один раз для каждого тестового класса. Если я использую метод установки этого кода конфигурации, он будет выполняться много раз (в зависимости от количества тестов в текущем тестовом классе). Я знаю, что могу создать собственное решение с «глобальным» флагом, который был проверен перед выполнением шагов настройки, но я думаю, что это не изящное решение, и мои потребности широко освещаются на других языках и модулях модульного тестирования :)Есть ли эквивалентный «атрибут/тег» для MSUnit ClassInitialize в python для nosetest или pytest?

Большое спасибо за вашу помощь. С наилучшими пожеланиями.

ответ

0

Я думаю, что аргумент scope для pytest fixtures - это то, что вы ищете.

# content of conftest.py 
import pytest 
import smtplib 

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

С уважением @DonKirkby, может ли кто-нибудь похож на идею nosetest? – Xaruman