EF удалить базу данных между тестами - PullRequest
0 голосов
/ 12 марта 2020

Я пишу тесты для моего пользовательского интерфейса, используя Specflow. Некоторые тесты изменяют мою базу данных, поэтому я не могу перезапустить некоторые тесты. Поскольку я использую EF, я решил просто удалить свою базу данных (потому что EF создаст новую и загрузит ее). Пока я выполняю свои тесты, мой MVC проект открыт. Я пытался удалить свою базу данных с помощью этого кода:

[BeforeFeature]
public static void DropDatabase()
{
    Database.Delete("SampleDbName");
}

Но проблема в том, что я получаю Невозможно удалить базу данных, потому что она в настоящее время используется. Затем я попробовал два решения:

  1. Добавить пул = false в строку моих подключений

  2. Call SqlConnection.ClearAllPools (); перед удалением моей базы данных

Оба случая не работали для меня, потому что я получаю сообщение об ошибке «не могу прикрепить файл .mdf как базу данных» каждый раз, когда пытаюсь получить доступ к своей базе данных (это происходит после удаления моей базы данных).
Моя цель - сделать мои тесты перезапускаемыми без перезапуска моего MVC проекта. Есть какие-то решения для решения этой проблемы?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...