当从命令行使用MsTest运行大量测试时,我可以看到每个测试执行及其结果都记录在窗口中,如下所示:
Passed Some.NameSpace.Test1
Passed Some.NameSpace.Test2
等等数以千计的测试。完成后,MsTest会吐出像这样的摘要
Summary
---------
Test run failed
Passed 2000
Failed 1
------------
Total 2001
此时我要么必须在窗口中向后滚动,试图在代表我单一失败测试的大海捞针中找到针,或我可以打开代表结果的巨大xml文件,以及文本搜索某些表示测试失败的关键字。
有没有更简单的方法?我是否可以在没有将传递的测试名称转储到控制台(仍然记录失败的测试名称)的情况下使MsTest报告进度,或者我可以在最后得到仅失败测试的摘要吗?
我认为显而易见的是命令行用户想要做的事情:跟踪进度并在结束时知道结果,而不必阅读xml或浏览cmd窗口历史记录。
答案 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.
}
}
我不知道这是否可以帮到你。