Заставить pytest включить функциональные тесты в свой счет
Я начинаю новый проект и пытаюсь следовать строгой тест-ориентированной разработке. У меня есть базовая настройка, и я использую pytest для запуска тестов.
Тесты обнаружены и работают правильно. Они терпят неудачу, когда они должны, и проходят, когда они должны. Но в результатах pytest количество выполненных тестов равно нулю. Это не имеет большого значения, но я хотел бы получить визуальную обратную связь, подтверждающую, что тестовый файл запускается.
В противном случае:
============================= test session starts =============================
...
collected 0 items / 1 errors
=================================== ERRORS ====================================
___________ ERROR collecting tests/functional_tests/test_package.py ___________
...
=========================== 1 error in 0.05 seconds ===========================
Passing:
============================= test session starts =============================
...
collected 0 items
======================== no tests ran in 0.03 seconds =========================
Для справки, мой первый функциональный тест просто import
пакет.
# Can we import the package?
import packagename
assert packagename is not None
Немного избыточный assert
была моя попытка заставить pytest считать это "тестом", так как я знаю, что он переписывает assert
быть более информативным.
Тест выполняется правильно, но сеанс не считается тестом. Мне все равно, как он считает тесты (весь файл один, каждый assert
один, что угодно), но я бы хотел это сделать!
1 ответ
Поместите это в функцию.
Ладно, поиграв еще немного, я решил свою проблему. Это, например, работает (вся функция считается за один тест).
def test_import():
# Can we import the package?
import packagename
Я оставлю вопрос открытым, чтобы узнать, есть ли у кого-нибудь лучший ответ.