命令行执行后打印MSTest摘要

时间:2012-03-07 12:12:42

标签: 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 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分: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.
    }
}

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