Невозможно удалить базу данных после модульного теста

ОТВЕТ: Я не очищал пулы соединений.

Решенный сценарий:

SetUp:

  1. Проверить, существует ли база данных TEMP_NUnit (SQL Server 2005) на локальном экземпляре
  2. Если она существует, отбросьте ее.
  3. Создайте новую пустую базу данных с именем «TEMP_NUnit».

Тест:

  1. Создать экземпляр компонента «Обновить базу данных».
  2. Убедитесь, что основные свойства компонента заданы правильно.
  3. Наведите компонент на пустую базу данных и вызовите .Upgrade ()
  4. Убедитесь, что обновление действительно сработало

TearDown:

  1. SqlConnection.ClearAllPools ();
  2. Отбросьте базу данных TEMP_NUnit.

Исходный вопрос находится в нижней части страницы.


Привет всем

Тестовый сценарий:

SetUp:

  1. Проверьте, существует ли база данных TEMP_NUnit (SQL Server 2005) на локальном экземпляре
  2. Если она существует, отбросьте ее.
  3. Создайте новую пустую базу данных с именем «TEMP_NUnit».

Тест:

  1. Создайте экземпляр компонента «Обновить базу данных».
  2. Убедитесь, что основные свойства компонента заданы правильно.
  3. Направьте компонент на пустую базу данных и вызовите .Upgrade ()
  4. Убедитесь, что обновление действительно сработало.

TearDown:

  1. Отбросьте базу данных TEMP_NUnit.

Все идет хорошо, пока я не дойду до фазы TearDown. Я всегда получаю следующую ошибку:

Невозможно удалить базу данных «TEMP_NUnit», потому что она в настоящее время используется.

Это сбивает меня с толку, потому что я закрываю (явно вызываю conn.Close в операторах finally) и удаляю (с помощью оператора using) все мои объекты DbConnection правильно. К моменту появления TearDown в базе данных "TEMP_NUnit" ничего не должно быть запущено.

Если я закрою NUnit, а затем снова открою его, сначала всегда срабатывает шаг 2 SetUp.

Я не уверен, что я здесь делаю не так. Будем признательны за любые указатели в правильном направлении.

5
задан Harry Johnston 6 May 2014 в 22:11
поделиться