Единичные тесты в Python [закрыты]

17

У Python есть единая тестовая среда, совместимая со стандартным стилем xUnit для тестовой среды? Если да, то что это, где оно, и хорошо ли это?

    
задан Sam McAfee 31.08.2008 в 07:07
источник

9 ответов

23

В Python есть несколько инфраструктур тестирования, включая unittest , doctest и nose . Самый xUnit-подобный - unittest , который документирован на Python.org.

ответ дан John Millikin 31.08.2008 в 07:09
источник
9

Я рекомендую нос .

Это самый Pythonic из единичных тестов. Тест-бегун выполняет как доктрины, так и unittests, поэтому вы можете использовать любой стиль теста, который вам нравится.

    
ответ дан codeape 01.09.2008 в 10:30
источник
3

Существует testoob , который является довольно полным набором тестов. Также xUnit - то есть, и имеет хороший вариант отчетности

    
ответ дан Yon 31.08.2008 в 07:20
источник
2

@Greg: PyUnit включен в стандартную библиотеку как unittest

    
ответ дан John Millikin 31.08.2008 в 07:37
источник
2

Рассмотрим py.test . Не совсем аналогично NUnit, но очень хорошо, с хорошими функциями, включая автоматическое обнаружение тестов и «Наблюдение за тестами и кодом», - когда что-то меняется, перезапускают тесты, которые потерпели неудачу в последний раз. Как только все тесты пройдут, переключитесь на запуск всех тесты, когда что-то меняется ». вариант.

    
ответ дан Blair Conrad 31.08.2008 в 13:53
источник
1

Я рекомендую Нос.

После разумной простой установки вам просто нужно запустить «nosetests» в папке проекта, а Nose найдет все ваши тесты и запустит их. Мне также нравится коллекция плагинов (покрытие, GAE и т. Д.) И способность звонить Nose непосредственно из моих сценариев Python.     

ответ дан Chris 21.08.2009 в 06:41
источник
0

Существует также PyUnit , который может быть тем, что вы ищете.

    
ответ дан Greg Hewgill 31.08.2008 в 07:35
источник
0

Никогда не используется xUnit, поэтому я не могу сказать вам, являются ли структуры хорошими / плохими сравнительно, но здесь - это сценарий, который я написал, который использует раму unittest (для проверки API работает так, как должен), и доктрист (чтобы проверить примеры, которые я дал работе)

Моя единственная проблема заключается в том, что проверка чего-то вызывает исключение, слегка запутанное (вам нужно передать ему функцию / лямбда, которая вызывает исключение, а не только сама команда, как и вся остальная часть фреймворка). Кроме этого, он делает то, что он должен, надежно, и он довольно долго был включен в дистрибутив python по умолчанию.

    
ответ дан dbr 31.08.2008 в 14:44
источник
0

нос кажется лучшим сочетанием гибкости и удобства. Он запускает unittests, doctests, охват (с расширением) и py.test-подобные тесты из одной структуры и делает это превосходно. У него достаточно популярность, что у нее была некоторая интеграция IDE, а также для Komodo Edit, и я не удивлюсь, увидев ее в другом месте.

Мне нравится это по одной серьезной причине: я почти всегда учусь, прежде чем писать более обширные тесты в другой структуре. Это потому, что для базовых тестов доктрины убивают двух зайцев одним камнем. Вы получаете исполняемые тесты (хотя они немного неуклюжи, чтобы писать хорошо иногда), а также документацию API и интерактивную документацию одновременно. нос будет запускать их с добавленным расширением доктрины, когда вы используете опцию командной строки (--with-doctest).

Я говорю, что это произошло из py.test как мой бывший фаворит. Хотя это здорово, тесты на нос настолько похожи на меня, что я не скучаю по нему, и мне нравится интеграция различных тестовых методик под одной крышей, так сказать. YMMV, но я рекомендую внимательно посмотреть на нос, прежде чем выбрать другой. Если вы не знакомы с испытаниями py.test, вы также должны посмотреть на них. Я нахожу их потрясающими, потому что они обычно пишутся таким образом, что их можно легко отладить без рамки тестирования, что делает менее сложную систему, задействованную в сеансе отладки. Я считаю, что это бесценно, в то время как они также легче писать, чем тесты unittest, на мой взгляд.

    
ответ дан Binary Phile 03.02.2010 в 20:15
источник