Выходы pytest без ошибок, но с "собранными 0 элементами"

Я пытаюсь запустить модульные тесты, используя pytest в python. Я написал модуль с одним классом и некоторыми методами внутри этого класса. Я написал unit test для этого модуля (с простым утверждением для проверки равенства списков), где я сначала создаю экземпляр класса со списком. Затем я вызываю метод на этом объекте (из класса). Оба test.py и script для тестирования находятся в одной папке. Когда я запускаю pytest, я получаю "собранные 0 элементов".

Я новичок в pytest, но могу успешно использовать их примеры. Что мне здесь не хватает?

Запуск Python версии 3.5.1 и pytest версии 2.8.1 на Windows 7.

Мой код test.py:

from sort_algos import Sorts

def integer_sort_test():
    myobject1 = Sorts([-100,10,-10])
    assert myobject1.merge_sort() == [-101,-100,10]

sort_algos.py - это модуль, содержащий класс Sorts. merge_sort - это метод в разделе Сортировка.

Ответ 1

pytest собирает тесты в соответствии с соглашением об именах. По умолчанию любой файл, который должен содержать тесты, должен быть назван, начиная с test_, и любая функция в файле, которая должна рассматриваться как тест, также должна начинаться с test_.

Если вы переименуете тестовый файл в test_sorts.py и переименуете функцию примера, указанную выше как test_integer_sort, вы обнаружите, что она автоматически собирается и выполняется.

Это поведение по сбору тестов можно изменить в соответствии с вашими желаниями. Для его изменения потребуется узнать о конфигурации в pytest.

Ответ 2

У меня была та же проблема, но моя функция называлась test.py Я никогда не думал, что проблема заключалась в имени файла, в документации сказано: "pytest запустит все файлы формы test_*.py *_test.py или *_test.py в текущий каталог и его подкаталоги. В более общем смысле он соответствует стандартным правилам обнаружения тестов. "

точно !, имя должно быть test_.py или test_something.py и работает для меня.

Я чувствую себя так глупо, хе-хе