Неправильное получение `Ошибка входа пользователя` во время интеграционных тестов - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь сделать несколько интеграционных тестов, включающих процедуру слияния SQL через Entity Framework.У меня есть модульный тест C # с этим в testinitialize:

[TestInitialize()]
public void MyTestInitialize() {
    if (Database.Exists("DefaultConnection"))
    {
        Database.Delete("DefaultConnection");
    }
    var people = new Person[]
    {
        new Person()
        {
            createDate=new DateTime(2005,01,01),
            dob=new DateTime(1995,12,25).ToString("M/d/yyyy"),
            firstname="Benjamin",
            lastname="Jacobs"
        },
        new Person()
        {
            createDate=new DateTime(2018,05,13),
            dob=new DateTime(2003,12,25).ToString("M/d/yyyy"),
            firstname="Kenneth",
            lastname="Cobb"
        },
        new Person()
        {
            createDate=new DateTime(2018,05,13),
            dob=new DateTime(2003,12,25).ToString("M/d/yyyy"),
            firstname="Ismael",
            lastname="Glover"
        }
    };
    using(MyContext db=new MyContext()){
        db.People.AddRange(people);
        db.SaveChanges();
    }
}

И затем у меня есть несколько методов тестирования, которые тестируют слияние нескольких различных типов данных.Я хочу начать с чистой тестовой базы данных, как указано выше.Когда я запускаю каждый тест в отдельности, все проходит.Проблема в том, что когда я запускаю все тесты, проходит только первый, а все последующие выдают ошибку.

Это сообщение об ошибке (слегка отредактированное для удаления идентифицируемой информации):

Метод инициализации MergePeopleTest.MyTestInitialize бросил исключение.System.Data.Entity.Core.EntityException: System.Data.Entity.Core.EntityException: базовый поставщик не удалось открыть.---> System.Data.SqlClient.SqlException: Невозможно открыть базу данных "MyDatabase", запрошенную при входе в систему.Ошибка входаНе удалось войти в систему для пользователя '[windows user]' ..

Удаление и воссоздание базы данных, вероятно, не лучший подход (я готов услышать лучшие идеи), но, похоже, это должно работать.Я делал это раньше, и у меня не было этой проблемы.

Редактировать: ошибка возникает во втором тесте во время TestInitialize в строке, где он пытается db.SaveChanges();.Насколько я могу судить, база данных была удалена, но затем она автоматически не воссоздала способ, которым EF должен выполнять код вначале.

...