У меня есть базовый класс для моих модульных тестов:Unit Test с транзакцией: CREATE DATABASE заявление не допускается в транзакции с несколькими операторами
public abstract class DatabaseTestsBase
{
protected OvuContext DbContext;
protected TransactionScope TransactionScope;
[SetUp]
public void TestSetup()
{
TransactionScope = new TransactionScope(TransactionScopeOption.RequiresNew);
DbContext = new OvuContext("IntegrationTestContext");
}
[TearDown]
public void TestCleanup()
{
TransactionScope.Dispose();
}
}
И сам тест:
[TestFixture]
public class MyEntityTests : DatabaseTestsBase
{
[Test]
public void MyEntity_Create_HasSucceeded()
{
var myEntity = new MyEntity(Guid.NewGuid());
myEntity.Description = "bla bla bla";
var id = myEntity.Id;
DbContext.MyEntities.Add(myEntity);
DbContext.SaveChanges();
var temp = DbContext.MyEntities.Single(x => x.Id == id);
ComparisonResult result = CompareLogic.Compare(myEntity, temp);
Assert.True(result.AreEqual);
}
}
я получил следующее ошибка при запуске теста: Операция CREATE DATABASE не допускается в рамках транзакции с несколькими операциями
«Странно», что когда я запускаю тест второй время, оно проходит.
Я не создаю новую базу данных, это уже существующая, которую я использую – Filip
Ну, по какой-либо причине, при первом запуске UT EF обнаруживает, что БД отсутствует. Проверьте строки подключения? – StuartLC
приложение app.config в модульном тестовом проекте имеет правильную строку соединения – Filip