2012-03-07 75 views
1

当运行一个大组的使用MSTest的命令行的测试中,我可以看到每个测试执行及其结果记录在窗口像这样:打印MSTest的总结

Passed   Some.NameSpace.Test1 
Passed   Some.NameSpace.Test2 

等等数以千计的测试。一旦完成,MSTEST会吐出这样

Summary 
--------- 
Test run failed 
    Passed 2000 
    Failed  1 
    ------------ 
    Total 2001 

总结在这一点上我要么开始在窗口向后滚动试图找到一个代表我的一个失败的测试,我大海捞针可以打开代表结果的巨大XML文件,以及文本搜索某个关键字指示失败的测试。

难道没有更简单的方法吗?我可以让MsTest报告进度而不倾销将测试名称传递给控制台(仍然记录失败的测试名称),还是我最终只能得到失败测试的摘要?

我认为它很明显是什么命令行用户想要做的:遵循进度和知道最后的结果,而不必读取XML或浏览CMD窗口的历史。

回答

2

回答我自己的问题:调用MsTest.exe并解析/汇总输出的简单包装器/解析器脚本,stdout或trx是唯一的解决方案。

0

您可以在每次测试结束时使用TestContext.CurrentTestOutcome来确定测试是否失败,然后将所有失败的测试记录到不同的文件中。

[TestCleanup] 
public void CleanUp() 
{ 
    if (TestContext.CurrentTestOutcome.ToString().Equals("Failed")) 
    {     
     TestContext.WriteLine("{0}.{1} ==> {2}", TestContext.FullyQualifiedTestClassName, 
      TestContext.TestName, TestContext.CurrentTestOutcome.ToString()); 

     //Log the result to a file. 
    } 
} 

我不知道这是否可以帮到你。

+0

不是没有改变2000测试类我猜... – 2012-03-07 21:58:19