Есть ли у Python фреймворк модульного тестирования, совместимый со стандартным стилем тестового фреймворка xUnit? Если да, то что это такое, где это и есть ли в этом польза?






Python имеет несколько сред тестирования, включая unittest, doctest и nose. Наиболее похожим на xUnit является unittest, который задокументирован на Python.org.
unittestdoctestЕсть testoob, который представляет собой довольно полный набор тестов, а также xUnit-ie и имеет удобную опцию создания отчетов.
Также есть PyUnit, который может быть тем, что вы ищете.
@Greg: PyUnit включен в стандартную библиотеку как unittest
Рассмотрим py.test. Не совсем аналог NUnit, но очень хороший, с хорошими функциями, включая автоматическое обнаружение тестов и «Следите за тестами и кодом - когда что-то меняется, перезапустите тесты, которые не прошли в прошлый раз. Как только все тесты пройдут, переключитесь на выполнение всех тесты всякий раз, когда что-то меняется ". вариант.
Никогда не использовал xUnit, поэтому я не могу сказать, хороши или плохи фреймворки в сравнении, но здесь - это сценарий, который я написал, который использует фреймворк unittest (чтобы проверить, работает ли API должным образом), и doctest (чтобы проверить примеры я привел работы)
Моя единственная проблема заключается в проверке того, что что-то вызывает исключение, слегка запутанное (вы должны передать ему функцию / лямбда, которая вызывает исключение, а не только саму команду, как остальная часть фреймворка). Кроме этого, он делает то, что он должен быть надежно, и он был включен в дистрибутив Python по умолчанию в течение довольно долгого времени.
Рекомендую нос.
Это самый питонический из фреймворков для модульного тестирования. Средство выполнения тестов запускает как доктесты, так и юнит-тесты, поэтому вы можете использовать любой стиль тестирования, который вам нравится.
Я рекомендую Нос.
После разумной простой установки вам просто нужно запустить «тесты» в папке вашего проекта, и Nose найдет все ваши тесты и запустит их. Мне также нравится набор плагинов (покрытие, GAE и т. д.) И возможность вызывать Nose прямо из моих скриптов Python.
нос кажется лучшим сочетанием гибкости и удобства. Он запускает unittests, doctests, покрытия (с расширением) и тесты, подобные py.test, из одной среды, и делает это превосходно. У него достаточно популярности, так что в него была интегрирована некоторая IDE для Komodo Edit, и я не удивлюсь, увидев его и в другом месте.
Мне это нравится по одной веской причине: я почти всегда проверяю, прежде чем писать более обширные тесты в другом фреймворке. Это потому, что для базовых тестов доктесты убивают двух зайцев одним выстрелом. Вы получаете исполняемые тесты (хотя иногда их сложно писать хорошо), а также документацию по API и интерактивную документацию одновременно. Нос будет запускать их с помощью прилагаемого расширения doctest, когда вы используете параметр командной строки (--with-doctest).
Я говорю, что это пришло из py.test как моего бывшего фаворита. Хотя это и здорово, тесты носа для меня достаточно похожи, я не скучаю по нему, и мне нравится, так сказать, интеграция различных методологий тестирования под одной крышей. YMMV, но я рекомендую хорошенько взглянуть на нос, прежде чем выбирать другой. Если вы не знакомы с тестами py.test, вам также следует взглянуть на них. Я считаю их потрясающими, потому что они обычно написаны таким образом, что их можно легко отладить. без - среда тестирования, что делает одну менее сложную систему, участвующую в сеансе отладки. Я считаю это само по себе бесценным, хотя, на мой взгляд, их проще написать, чем модульные тесты.
Ссылка на нос мертва.