ОТВЕТ: Я не очищал свои ConnectionPools.Не удается удалить базу данных после тестирования устройства
Решенная сценарий:
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. Я всегда получаю следующее сообщение об ошибке:
Cannot drop database "TEMP_NUnit" because it is currently in use.
Это сбивает с толком меня, потому что я закрываю (явный вызов conn.Close в наконец отчетности) и утилизации (с помощью использования заявления) все мои DbConnection объектов правильно. В момент появления TearDown в базе данных TEMP_NUnit не должно быть ничего.
Если я закрою NUnit, а затем снова откройте его, шаг 2 SetUp всегда работает первым.
Я не уверен, что я делаю неправильно здесь. Любые указатели в правильном направлении были бы оценены.
Бинго! Спасибо чувак. –