Лучшие практики тестирования интеграции

Наша команда провела сотни интеграционных тестов, которые попали в базу данных и проверили результаты. Я'у нас есть два базовых класса для всех тестов интеграции, один для тестов только для извлечения и один для тестов создания / обновления / удаления. Базовый класс только для извлечения регенерирует базу данных во время TestFixtureSetup, поэтому он выполняется только один раз для каждого тестового класса. Базовый класс CUD восстанавливает базу данных перед каждым тестом. Каждый класс репозитория имеет свой собственный соответствующий класс тестирования.

Как вы можете себе представить, все это занимает довольно много времени (около 7-8 минут, чтобы бежать и быстро расти). Запустить этот запуск как часть нашего CI (CruiseControl.Net) не проблема, но локальный запуск занимает много времени и действительно запрещает запускать их перед принятием кода.

У меня вопрос: есть ли рекомендации, которые помогут ускорить выполнение этих типов интеграционных тестов?

я не могу выполнить их в оперативной памяти (а-ля sqlite), потому что мы используем некоторые специальные функции базы данных (вычисляемые столбцы и т. д.), которые не 'T поддерживается в SQLite.

Кроме того, вся команда должна иметь возможность их выполнять, поэтому запуск их на локальном экземпляре SQL Server Express или что-либо может быть подвержен ошибкам, если строки подключения не являются одинаковыми для этих экземпляров.

Как вы делаете это в своем магазине и что работает хорошо?

Спасибо!

Ответы на вопрос(5)

Ваш ответ на вопрос