Как начать тестировать и получать от этого удовольствие

Feb 26, 2011 18:27

Вчера рассказывал о тестировании django приложений с помощью django-any, и о быстром развертывании continuous integration с jenkins и django-jenkins.

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

image You can watch this video on www.livejournal.com



Fork me om GitHub!

python

Leave a comment

Comments 24

aleks_justasu February 26 2011, 15:06:21 UTC
hudson(jenkins) рулит, пришлось с ним столкнуться на работе, очень помогает, зотя конечно проскакивают в нем парочка глюков

Reply


kurilka February 26 2011, 15:42:52 UTC
чтот iframe с http://lj-toys.com/ нифига негрузится - нет какой-нибудь "прямой линки"?

Reply

kurilka February 26 2011, 15:43:25 UTC
упс, ответ запостил и отобразилось...

Reply

kmmbvnr February 26 2011, 15:51:31 UTC
Видимо глюки выключалки видео-роликов в жж.

Вот, вдруг кому надо, прямая ссылка - http://vimeo.com/20396959

Reply


kurilka February 26 2011, 20:28:57 UTC
Хорошая презентация, спасибо.
Слушай, есть несколько ламерский вопрос (но на который я никак не могу понять есть ли ответ) - вот для счетов, банкоматов и т.п. штуковин более-менее понятно как тесты делать, но как тестировать функционал более близкий к вебу, ведь это основная задача джанги, т.е. речь про urls.py, вьюшки и т.п. Selenium и т.п.? Правда для browser-based тестов, насколько я понимаю, покрытие фиг посчитаешь.

Reply

kmmbvnr February 27 2011, 02:45:31 UTC
>> речь про urls.py, вьюшки
Для простых случаев (запрос-ответ) встроенный test client вполне подходит.

Для того чтобы протестировать open-id аутентификацию, или тот же django form wizard я использовал twill. Он легко интегрируется с django

Но сейчас говорят есть более продвинутый webtest и стоит его использовать вместо twill'a. Интеграция с django так же присутствуетЭто что касается python кода ( ... )

Reply

kurilka February 27 2011, 07:49:15 UTC
спасибо за подробный ответ, собственно это я и относил примерно к "Selenium и т.п.".
А покрытие разве можно достать из test_client/webtest?
Ну и для реальных сайтов много делаешь тестов на "запрос-ответы"?

Reply

kmmbvnr February 27 2011, 12:55:23 UTC
test client и webtest это же pure python. webtest интегрируется на уровне wsgi, django test client еще глубже. Как бы никакой разницы для ocverage.

>> для реальных сайтов много делаешь тестов на "запрос-ответы"
Стандартно я тестирую permission'ы на url'ах: два списка разрешенных и запрошенных url, и цикл с assert'ом. Ну и POST, там где достаточно логики чтобы имело смысл тестировать.

Reply


No title pingback_bot February 27 2011, 07:38:37 UTC
User glorphindale referenced to your post from No title saying: [...] как с помощью Jenkins можно запускать тесты для Django. А тут, внезапно, такой ролик уже находится [...]

Reply


ext_442564 February 27 2011, 12:04:40 UTC
А есть что-нибудь такое же, но без джанги?

У меня сейчас простое wsgi приложение и nosetests к нему. В jenkins я это засунул и он показывает успешность билда и тестов. Но без красивых графиков coverage и lint... Из исходников django-jenkins я так и не понял что там происходит для их создания 7:

Reply

kmmbvnr February 27 2011, 12:57:42 UTC
- Для coverage отчета есть nose-​xcover plugin
- Для pylint в опциях консольной утилиты - тип вывода parsable

Я вначале пробовал все это с django-nose, но nose больше проблем приносит в django тесты, чем помогает.

Reply

ext_442564 February 27 2011, 13:03:12 UTC
А что там за грабли с django-nose?

И, вроде, их там штуки четыре разных варианта...

Reply

kmmbvnr February 27 2011, 13:08:05 UTC
Другой порядок загрузки модулей чем у джанги, дважды грузит некоторые модули. Это у меня ломало часть существующего проекта.

И я так и не разобрался как возникало:

from django.contrib.auth.modls import User
User.objects.get(pk=1)
'NoneType' object has no attribute 'objects'

Reply


Leave a comment

Up