ОТВЕТ: Я не очищал пулы соединений.
Решенный сценарий:
SetUp:
- Проверить, существует ли база данных TEMP_NUnit (SQL Server 2005) на локальном экземпляре
- Если она существует, отбросьте ее.
- Создайте новую пустую базу данных с именем «TEMP_NUnit».
Тест:
- Создать экземпляр компонента «Обновить базу данных».
- Убедитесь, что основные свойства компонента заданы правильно.
- Наведите компонент на пустую базу данных и вызовите .Upgrade ()
- Убедитесь, что обновление действительно сработало
TearDown:
SqlConnection.ClearAllPools ();
- Отбросьте базу данных TEMP_NUnit.
Исходный вопрос находится в нижней части страницы.
Привет всем
Тестовый сценарий:
SetUp:
- Проверьте, существует ли база данных TEMP_NUnit (SQL Server 2005) на локальном экземпляре
- Если она существует, отбросьте ее.
- Создайте новую пустую базу данных с именем «TEMP_NUnit».
Тест:
- Создайте экземпляр компонента «Обновить базу данных».
- Убедитесь, что основные свойства компонента заданы правильно.
- Направьте компонент на пустую базу данных и вызовите .Upgrade ()
- Убедитесь, что обновление действительно сработало.
TearDown:
- Отбросьте базу данных TEMP_NUnit.
Все идет хорошо, пока я не дойду до фазы TearDown. Я всегда получаю следующую ошибку:
Невозможно удалить базу данных «TEMP_NUnit», потому что она в настоящее время используется.
Это сбивает меня с толку, потому что я закрываю (явно вызываю conn.Close в операторах finally) и удаляю (с помощью оператора using) все мои объекты DbConnection правильно. К моменту появления TearDown в базе данных "TEMP_NUnit" ничего не должно быть запущено.
Если я закрою NUnit, а затем снова открою его, сначала всегда срабатывает шаг 2 SetUp.
Я не уверен, что я здесь делаю не так. Будем признательны за любые указатели в правильном направлении.
задан Harry Johnston 6 May 2014 в 22:11
поделиться