У 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.