2014-03-24 2 views
1

У нас есть процесс сборки, включающий unittest, запущенный через mstest.exe. Иногда некоторые unittest застревают, появляется диалоговое окно с сообщением или отправить сообщение об ошибке или все сбои процесса. Я не знаю, как найти, какой из тестов является плохим.Как найти или выполнить текущий текущий тест в MSTEST.exe

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

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

Я не хочу устанавливать тайм-аут для каждого отдельного теста, потому что я не уверен, какой подходящий тайм-аут.

Хорошим решением для меня может быть регистрация, когда unittests начнут работать, когда закончите. Я мог бы найти, что последний зарегистрированный unittest. Есть ли способ зарегистрировать его?

ответ

1

Вы можете использовать TestContext.TestName для него:

/// Use this method to run code before running each test. 
[TestInitialize()] 
public void TestInitialize() 
{ 
    YourLogger.LogFormat("Run test {0}", this.TestContext.TestName); 
} 

/// Use TestCleanup to run code after each test has run 
[TestCleanup()] 
public void MyTestCleanup() 
{ 
    YourLogger.LogFormat("Test {0} is done", this.TestContext.TestName); 
} 
+0

Это звучит хорошо. Нужно ли добавлять это к каждому тестовому классу? – qub1n

+0

Вы можете создать базовый класс, который реализует этот журнал, взгляните на эту статью в блоге: [Использование базового класса для ваших модульных тестовых классов] (http://blogs.msdn.com/b/densto/archive/2008/ 05/16/с использованием мини-базы-класс для-вашего-блока-тест-classes.aspx) – Elena

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