Заставить 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

Я оставлю вопрос открытым, чтобы узнать, есть ли у кого-нибудь лучший ответ.

Другие вопросы по тегам