2016-05-27 3 views
0

Есть ли способ автоматизировать отчетность по каждому тестовому прогону?Модульное тестирование Visual Studio C# - результаты отчета для каждого запуска

Теперь я делаю это

[TestMethod] 
public void Test1() 
{ 
    ReportTestStarted("Test1"); 
    // do test like 
    Assert.IsTrue(true,"Fake good test"); 
    ReportTestFinshed("Test1"); 
} 

с предположением, что, когда тест начал он должен быть закончен, то это хорошо. ReportTest *() собирает все результаты, а затем сохраняет их как-то.

Надеюсь, что можно использовать Атрибуты и обновить [TestMethod], чтобы он выполнял такую ​​работу автоматически. Любые идеи?

Обновление: Спасибо за @ Ричард и @Scott намеки я понял, что я могу использовать этот код и знать результат на основе этой link

 public TestContext TestContext { get; set; } 
     [TestCleanup] 
     public void CleanupTest() 
     { 
      Console.WriteLine(
       "TextContext.TestName='{0}' {1} ", 
       TestContext.TestName, 
(Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Passed==TestContext.CurrentTestOutcome?"Pass":"Fail")); 
     } 
+0

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

+0

Я стараюсь глубже заглянуть в тестовую библиотеку микрософт или получить NUnit от Nuget и использовать это. Вы также должны использовать контракты в своем тестовом коде, чтобы убедиться, что ваш код работает так, как ожидалось. –

+0

'Debug.WriteLine' –

ответ

1

Спасибо за комментарии у меня есть ответ:

 public TestContext TestContext { get; set; } 
     [TestCleanup] 
     public void CleanupTest() 
     { 
      Console.WriteLine(
       "TextContext.TestName='{0}' {1} ", 
       TestContext.TestName, 
(Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Passed==TestContext.CurrentTestOutcome?"Pass":"Fail")); 
     } 

Он обеспечивает доступ к имени теста и результатам тестирования, которые я могу использовать и хранить в любом случае. Самое главное - мне не нужно прикасаться к моим TestMethods. Этот подход собирает и сообщает весь результат без добавления дополнительных строк кода в каждый TestMethod.

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