В большинстве продуктов, будь то продукт с большим размещенным веб-сайтом или упакованная в термоусадочную пленку с БД, у вас обычно есть 2 сценария, в которых вы хотите провести модульное тестирование (я понимаю, что для некоторых это может перейти гораздо больше, чем просто модульное тестирование)
- Новый путь установки - При создании БД с нуля
- Автоматизация создания БД с использованием MsBuild и SQLCMD, передача параметров в
- Использование PowerShell для любых административных задач на уровне сервера
- Путь обновления - При обновлении БД существующего клиента
- Восстановление резервной копии очищенной БД реального мира в качестве базовой линии
- Если обязательно применить обновления после обновлений
- Снова используйте PowerShell, MsBuild, SQLCMD для организации жгута
Для меня, даже когда модульное тестирование, мне нравится тестировать с данными «реального мира», особенно с объемом данных реального мира, чтобы как можно раньше выявить проблемы, приближенные к этапу реализации . Так что, в общем, я даже не провожу Mock Testing и не использую лучший модуль для тестирования модулей, который можно перестроить и запустить по требованию. В основном, подход непрерывной интеграции или частичный CI (оксюморон).
Обратите внимание, что если вы используете подход непрерывной интеграции, то, что вы помните, даже во время внедрения и разработки, это автоматизация развертывания результатов / выпуска в производство. По сути, помните End с самого начала, потому что ваша новая функция ничего не стоит, если ее нелегко развернуть. Это особенно актуально в том случае, когда горизонтальная масштабируемость Big Data сегодня обычно означает, что вы разделяете клиентов в разных БД и вам приходится многократно запускать сценарии развертывания на нескольких из этих БД предсказуемым образом.
Сколько раз Разработчик объявлял, что они "сделали" , но тогда вы не представляете, как даже начать выполнять функциональное тестирование на нем, потому что его нельзя развернуть в любом месте, кроме Среда разработчика.
Таким образом, проводка модульного тестирования, которую вы создаете, действительно проверяет не только ваш код, но и сценарии развертывания. В общем, для достижения этого я использую Jenkins, MsBuild, PowerShell. И если задействованы браузеры, я использую VirtualBox для виртуальной машины для запуска различных браузеров.