Как стать автором
Обновить

Хватит терять клиентов! Или как разработчику тестировать сайт, на примере PVS-Studio. Часть 1

Время на прочтение15 мин
Количество просмотров7.8K
Всего голосов 9: ↑8 и ↓1+13
Комментарии7

Комментарии 7

Спасибо за статью. Не знаю насколько возбраняются циклы в тестах, но некоторые неудобства они могут принести если к примеру первый и последний элементы ошибочны то проверить все за раз не получится, придётся сначала исправлять первый кейс, прогонять по новой, увидеть что ещё один кейс сломан и исправлять код для него и т.д. Мне кажется юниттест библиотека питона не сильно гибкая в настройке, как pytest. Стиль тестов в pytest позволяет использовать параметризованные тесты и фикстуры, а так же не размазывать tearDown в отдельной функции а хранить всё рядом с объектом к которому он относится используя генератор для фикстур. Плюс сам тест выглядит как просто функция, не зависящая от классов. Один раз попробовав pytest обратно уже не смог вернуться к стандартной библиотеке. ?

Согласен, циклы не всегда удобны в тестах, но обычно мне subTest помогает в таких случаях. Т.е. если первый и последний элементы ошибочны, тест прогонится и просто выдаст информацию по этим двум упавшим элементам. Правда, если тест долгий, то сначала прогоняю его на маленьких объемах, чтобы понять, что он рабочий, а потом уже запускаю на полную.

Про фикстуры гляну, интересная штука, спасибо)

ага слышал про subTest, не довелось использовать так как при запуске через pytest тестов написанных с помощью unittest (да так можно) есть ограничение по запуску тестов в несколько потоков. Но думаю в основном рабочая алтернатива параметризации в pytest.

при запуске через pytest тестов написанных с помощью unittest (да так можно)

)))

А для многопоточки что-то встроенное в pytest используете или обычный питоновский threading?

Тестировать поля для ввода email проще с помощью генеративных тестов на основе грамматики, которая описывает возможные валидные значения email.

Библиотека hypothesis позволяет это сделать относительно легко.

Спасибо, попробую как-нибудь

К сожалению, по Вашим инструкциям из командной строки запускается только прямое указание к классу теста. Если набрать просто manage.py test, ничего не происходит:

System check identified no issues (0 silenced).

Ran 0 tests in 0.000s

OK

Кроме того, при попытке воспользоваться встроенным тестировщиком VS Code, выдаёт либо

django.core.exceptions.ImproperlyConfigured: Requested setting DEBUG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

либо (после того, как прогуглил все StackOverflow и установил DJANGO_SETTINGS_MODULE):


django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

Короче, так ничего и не получилось ((

Зарегистрируйтесь на Хабре, чтобы оставить комментарий