Тест второго пользовательского интерфейса в группе тестов, выполненных из VS2010, зависает и делает все последующие тесты неудачными - PullRequest
0 голосов
/ 23 февраля 2012

У меня есть целый ряд тестов с закодированным пользовательским интерфейсом, которые я разработал в рамках нашего пакета интеграции, системы и приемочного тестирования.

По определению, каждый тест должен начинаться с чистого листа, и поэтому любой тест должен отбрасывать одну, две или три базовые базы данных, на которые опирается продукт. Более того, тесты также относятся к конкретным машинам и, как таковые, они управляются данными через файлы XML, что дает тестировщикам возможность запускать тесты на любом компьютере, который они выбрали, если они следуют процедурам настройки теста.

Я разработал параметры конфигурации для тестового исполняемого файла, в котором можно настроить строку подключения к базе данных, учетную запись sa, а также учетные записи времени выполнения, используемые для подключения к базе данных. Эти параметры находятся в app.config исполняемого файла теста.

В начале каждого теста я вызываю статический метод объекта, например SQLUtility, где я бы удалял существующую базу данных и восстанавливал ее из резервной копии. Объект SQLUtility использует Microsoft.SQLServer.Management.SMO и гарантирует, что он подключается к SQL Server с учетной записью SA, выполняет операцию восстановления и, наконец, заново создает имена входа в БД, используемые продуктом для доступа к указанным базам данных.

Проблема, с которой я сталкиваюсь, заключается в том, что если я запускаю тесты по одному вручную, они работают нормально. Если я запускаю все тесты в текущем контексте, выполняется только первый, а второй тайм-аут.

Может ли кто-нибудь помочь мне или указать мне правильное направление, почему это происходит? Возможно ли, что поскольку SQLUtility является статическим объектом, он не выгружается должным образом средой Microsoft Test между каждым тестом?

Спасибо, Martin

1 Ответ

1 голос
/ 27 февраля 2012

Определите объект для метода «SQLUtility» в каждом методе тестирования. Не объявляйте это глобально. Я надеюсь, что это решит вашу проблему.

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