У Django есть инструменты тестирования BDD, сравнимые с инструментами тестирования Rails?

Ruby/Rails пользуются некоторыми действительно хорошими и мощными структурами тестирования разработки/разработки с учетом поведения, такими как Cucumber и RSpec.

Использует ли Python/Django одно и то же (я не говорю о простом модульном тестировании, таком как PyUnit)?

Ответы

Ответ 1

Появились новые инструменты, называемые Lettuce, чтобы promises была питонической версией огурца. Он начинается с интеграции Django. Это плюс существующие инструменты тестирования в Django делает его довольно хорошим для модульного тестирования.

Также есть инструмент под названием Windmill, который предоставляет надежный инструмент для тестирования на основе браузера для создания графических тестов. Поделитесь этим с помощью инструмента, такого как Lettuce, для написания приемочных тестов и прямого unittest и nosetests, и я бы сказал, что вы настроены.

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

Надеюсь, что это поможет.

Ответ 2

в случае, если кто-то все еще посещает здесь, Aloe, является обновлением салата и имеет интеграцию для django 1.8. Я начинаю использовать его сейчас.

Ответ 3

Если вы имеете в виду тестирование высокого уровня, а не модульное тестирование, вы все равно можете использовать Cucumber. Огурец можно подключить к Webrat и Mechanize, и вы можете использовать эту настройку для написания историй, чтобы протестировать ваше приложение Django. У меня такая настройка. Вы также можете подключить огурец с помощью Watir и выполнить тестирование на основе браузера.

Существует не что-то вроде FactoryGirl для автоматического создания данных для вашей модели, но вы можете использовать инструменты Django для создания исходных данных для вашей модели и только устанавливать светильники, когда вы находитесь в режиме тестирования. Затем вы можете запустить тест и получить некоторые данные для тестирования.

С этими вещами вы можете настроить довольно полный набор тестов высокого уровня. Затем вы можете использовать Django unit test для тестирования низкого уровня.

Ответ 4

Я работаю с Framework Robot Test Framework http://code.google.com/p/robotframework/. Это универсальная система автоматизации тестирования для приемочного тестирования и разработки приемочного тестирования (ATDD).

Он гибкий и мощный, а также позволяет стиль BDD аналогично салатуру/огурцу.

Ответ 5

У меня был хороший опыт работы с TestBrowser, который позволяет вам писать функциональные тесты на высоком уровне. См. http://pypi.python.org/pypi/homophony для интеграции TestBrowser с Django.