2012-04-26 4 views
1

Приложение, над которым я работаю, это Velocity/Spring MVC/Mongo на tomcat, типа webapp.Интеграционные тесты с встроенным Mongo или установленным экземпляром

Я могу выполнить свои интеграционные тесты на Embedded Mongo, используя EmbedMongo, который занимает больше времени, чтобы запустить все тесты, скажем, около 1 минуты, но в тестовой базе данных на установленном Mongo требуется около 15 секунд.

Есть ли какая-либо польза от использования встроенных баз данных для тестов интеграции при создании нового db (в данном случае тестового db в одном экземпляре) является незначительным усилием? Фактически, сами тесты могут создать БД и необходимую коллекцию.

За исключением использования встроенного Mongo в окне CI, где обычная установка не требуется, я не вижу в этом большой пользы.

Может кто-нибудь поделиться идеями, пожалуйста.

Благодаря Gaurav

ответ

0

С отдельной установленного экземпляра у вас есть настройки процесса и Teardown затраты, связанные, которые вы хотели бы, чтобы минимизировать для тестов, следовательно, преимущество использования встроенного DB.

+0

Да, это правда, но в случае Монго стоимость установки/срыва незначительна. И в dev-боксах, его всегда работает, так что еще один тестовый db внутри одного и того же экземпляра - это тривиальное достижение. Итак, я до сих пор смущен, является ли встроенная монго хорошей идеей – user724503

1

Посмотрите на эту ссылку: https://stackoverflow.com/a/9830861/82609

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

Что вы можете сделать, чтобы увеличить скорость, - это запустить и выключить один раз для всего набора тестов. Я имею в виду: держите экземпляр MongoDB между тестами.


Но вы не хотите, чтобы ваши тесты зависели друг от друга. Итак, что вы можете сделать, это использовать другое имя базы данных (UUID), чтобы в итоге у вас был один экземпляр MongoDB с множеством разных баз данных, по одному для каждого теста.

Или вы можете очистить базу данных между каждым тестом.

+0

как я могу ее очистить? –

 Смежные вопросы

  • Нет связанных вопросов^_^