Сначала пытаемся выполнить какое-то модульное тестирование с кодом EF 4.1. У меня есть моя живая БД (SQL Server) и моя БД модульного тестирования (Sql CE). После борьбы (и проигрыша) с EF, Sql CE 4.0 и поддержкой транзакций я решил, что самый простой способ запустить мой тест:
- Создать Db
- Выполнить тест
- Удалить Db
- Прополоскать и повторить
У меня есть функции [Setup] и [TearDown]:
[SetUp]
public void Init()
{
System.Data.Entity.Database.SetInitializer(new MyTestContextInitializer());
_dbContext = ContainerFactory.Container.GetInstance<IContext>();
_testConnection = _dbContext.ConnectionString;
}
[TearDown]
public void Cleanup()
{
_dbContext.Dispose();
System.Data.Entity.Database.Delete(_testConnection);
}
Проблема в том, что System.Data.Entity.Database.SetInitializer не вызывает MyTestContextInitializer после первого теста.
Следовательно, второй тест завершается неудачно с:
System.Data.EntityException:
базовый поставщик не удалось открыть.
----> System.Data.SqlServerCe.SqlCeException
: Файл базы данных не найден.
Проверьте путь к базе данных
TIA для любых указателей