Использование новой базы данных для тестирования или создания облачных данных для литейного производства и MySQL? - PullRequest
0 голосов
/ 06 сентября 2018

Я работаю над проектом, который использует AWS, и мы помещаем наши данные в базу данных MySQL. Проект очень длинный и в основном имеет дело с базой данных. Структура нашей базы данных может меняться каждый раз, но наши данные в базе данных меняются довольно часто (например, раз в 15 дней). Если данные изменяются, это приводит к сбою тестов системного интегратора, поскольку мы выполняем это на реальной базе данных. Поэтому мы пришли к двум идеям, одна из которых заключалась в том, чтобы создать фиктивные данные, поместить их в нашу базу данных и протестировать их (большую часть времени это будет работать), но это утомительная задача, поскольку база данных довольно сложна. Другой - создать новую базу данных и скопировать из нее текущие данные (это будет работать, потому что сейчас все тесты пройдены). Это сэкономит наше время на создание фиктивных данных. Мы запустим наши тестовые примеры в Dev и приемку в этой среде и сделаем привязку CF в производстве, так что это похоже на написание еще одной строки привязки и отмены привязки. Мы используем сине-зеленое развертывание, поэтому простои не являются проблемой. Может кто-нибудь подсказать, какой подход лучше?

Одна отдельная база данных для тестирования (я никогда не видел этого) Или создание поддельных данных?

1 Ответ

0 голосов
/ 19 сентября 2018

Предполагая, что схема вашей базы данных не слишком сложна, я предлагаю вам использовать базу данных в памяти, такую ​​как H2 или HSql db. Вы можете загрузить все необходимые наборы данных как часть установки, а затем запустить тесты для всех условий.

В конце тестов экземпляры H2 будут уничтожены. И ваш фактический дб остался без изменений.

Одно предостережение, будучи в БД в памяти, вы захотите рационализировать объем тестовых данных, которые вы вводите во время установки. Таким образом, вы можете иметь несколько наборов тестов, каждый из которых имеет свой собственный набор тестовых данных (подмножество общего набора).

Вы можете контролировать такое поведение, используя активные профили.

...