4

Можно ли запускать модульные тесты в Visual Studio 2012 против localDb, который построен с помощью Entity Framework 5.0 Code-First? В настоящее время наша разработка противоречит экземпляру SQL Express Server, но это не будет работать с развертываниями AppHarbor, поскольку Db недоступен.LocalDb для модульного тестирования с платформой Entity Framework 5.0, развернутой в AppHarbor

ответ

4

Я не уверен, что использование LocalDB решит вашу проблему. Чтобы использовать LocalDB, LocalDB все еще должен быть установлен на машине, на которой выполняются ваши модульные тесты, и это может быть не так в AppHarbor.

Рассмотрим эти ресурсы альтернативы:

  1. Integration Testing Entity Framework code first with in-memory database (использование SQL CE сервера с использованием файла в единичном каталоге тестов)
  2. Effort (давайте создавать схемы и единицы запуска тестов в памяти, не прикасаясь к файловой системе - вероятно, предпочтительнее)
+0

Я смог получить .sdf, работающий (частично) в сценарии единичного тестирования. Проблема теперь в .sdf не позволяет создавать хранимые процедуры, поэтому я могу только частично протестировать базу данных. – tafaju

+0

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

+0

Да, вы правы, это больше в духе интеграционных тестов, но, к сожалению, с учетом того факта, что при непрерывном развертывании тесты на единицу («интеграция») являются единственным хранителем ворот. Перемещение логики из базы данных в уровень приложения никогда не кажется хорошей идеей, когда основной причиной существующей является фильтрация на основе набора. Передача ненужных данных за запрос представляется более дорогостоящей, чем решение проблемы переносимости. – tafaju