2010-07-14 6 views
1

Я выполняю модульное тестирование проекта .NET с использованием собственной структуры visual studio, где каждый тест должен закрывать определенные соединения, чтобы следующий тест мог работать правильно. Однако, когда тест не выполняется, эта очистка не выполняется, и в результате все последующие тесты терпят неудачу.Как выполнить метод, когда тест завершился неудачно

Есть ли способ, которым я могу выполнять метод каждый раз, когда тест терпит неудачу?

ответ

4

Попробуйте добавить логику очистки в метод, украшенный атрибутом [TestCleanUp].

См. the MSDN for details.

+0

Как передать параметры для такого метода? Кроме того, в идеале я хотел бы определить глобальную переменную в методе [ClassInitialize], но это не позволяет мне увидеть свойство, которое я только что определил. Свойство отображается в [TestCleanUp]. Как так? – sbenderli

+1

@sbenderli: Вы не можете. Это похоже на [TestMethod], поскольку он автоматически устанавливается и вызывается механизмом тестирования. Метод [TestCleanup] в классе называется * после * каждый тест завершается, чтобы очистить. Аналогично, метод [TestInitialize] выполняется * до * каждого теста для настройки состояния перед тестированием тестового прибора. – Toby

+1

Вы не можете, и вы не должны. этот метод, а также 'TestInitialize', автоматически вызывается механизмом тестирования. Вы по-прежнему можете использовать поля вашего тестового класса. т. е. вы создаете член '_connection' в своем классе, вы инициализируете соединение в методе' [TestInitialize] ', а затем закрываете его в методе' [TestCleanUp] '. –

Смежные вопросы