У меня проблема с запуском тестов pytest с pyDev. Я пытаюсь запустить unit test с модульным общим устройством и финализатором, который должен быть отменен после последнего теста. Но при запуске unit test в pyDev он не использует один и тот же экземпляр, но вместо этого создает два разных экземпляра. Пример выполняется нормально в консоли или при запуске из script внутри pydev.
Я использую платформу Python 2.7.3, pytest-2.3.4, pyDev 2.7.3.2013031601, Eclipse 4.2 на Win7.
Я попробовал пример из http://pytest.org/latest/fixture.html
Результат от pydev:
============================= test session starts ==============================
platform win32 -- Python 2.7.3 -- pytest-2.3.4
__________________________________ test_ehlo ___________________________________
smtp = <smtplib.SMTP instance at 0x027F9080>
__________________________________ test_noop ___________________________________
smtp = <smtplib.SMTP instance at 0x027FF3C8>
Выход консоли:
============================= test session starts ==============================
platform win32 -- Python 2.7.3 -- pytest-2.3.4
__________________________________ test_ehlo ___________________________________
smtp = <smtplib.SMTP instance at 0x01E51288>
__________________________________ test_noop ___________________________________
smtp = <smtplib.SMTP instance at 0x01E51288>
Каково ожидаемое поведение. Что я делаю неправильно?
используемый код - conftest.py:
import pytest
import smtplib
@pytest.fixture(scope="module")
def smtp():
return smtplib.SMTP("merlinux.eu")
Тестовый код в test_smtplib.py:
# content of test_module.py
def test_ehlo(smtp):
response = smtp.ehlo()
assert response[0] == 250
assert "merlinux" in response[1]
assert 0 # for demo purposes
def test_noop(smtp):
response = smtp.noop()
assert response[0] == 250
assert 0 # for demo purposes
Запуск теста из script с помощью
import pytest,os
os.chdir("[path_to_tests]/tests") #your file location
pytest.main(['-s', 'test_smtplib.py'])
Любые предложения и большое спасибо за вашу помощь!