нос против pytest - какие (субъективные) различия, которые должны заставить меня выбрать? [закрытый]


Я начал работать над довольно большим (многопоточным) проектом Python, с нагрузками (модульных)тестов. Самая важная проблема заключается в том, что для запуска приложения требуется предустановленная среда, которая реализуется контекстным менеджером. До сих пор мы использовали исправленную версию unit test runner, которая запускала бы тесты внутри этого менеджера, но это не позволяет переключать контекст между различными тестовыми модулями.

и нос и pytest поддерживают такую вещь потому что они поддерживают приспособления на много зернистостей, поэтому мы смотрим в переключать к носу или pytest. Обе эти библиотеки также будут поддерживать тесты "пометки" и запускать только эти помеченные подмножества, что мы также хотели бы сделать.

Я немного просмотрел документацию как nose, так и pytest, и насколько я могу видеть, большая часть этих библиотек по существу поддерживает ту же функциональность, за исключением того, что она может называться по-разному или требовать немного другой синтаксис. Кроме того, я отметил некоторые небольшие различия в доступных плагинах (нос имеет поддержку нескольких процессов, например, pytest)

Так что, похоже, дьявол находится в деталях, что означает (по крайней мере, часто) в личном вкусе, и нам лучше пойти с библиотекой, которая лучше всего соответствует нашему личному вкусу.

поэтому я хотел бы попросить субъективную аргументацию, почему я должен идти с носом или pytest, чтобы выбрать комбинацию библиотеки / сообщества, которая лучше всего подходит нашему по необходимости.

1 68

1 ответ:

я использовал нос, потому что это было по умолчанию с пилонами. Мне это совсем не понравилось. У него были усики конфигурации в нескольких местах, практически все, казалось, было сделано с недокументированным плагином, который сделал все это еще более косвенным и запутанным, и поскольку он делал unittest тесты по умолчанию, он регулярно ломался с Unicode tracebacks, скрывая источники ошибок.

Я был очень доволен py.проверьте последние пару лет. Возможность просто написать тест с assert из коробки заставляет меня ненавидеть писать тесты путь меньше, и взлом все, что мне нужно на вершине ядра было довольно легко. Вместо фиксированного интерфейса плагина у него просто куча крючков, и довольно понятный исходный код, если вам нужно копать дальше. Я даже написал адаптер для запуска тестов свидетельств под py.тест, и было больше проблем с показаниями, чем с py.тест.

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