2011-05-13 59 views
4

我是新来的单元测试,我想看看我的测试结果。如何查看VS2010中测试结果窗口中单元测试的输出结果?

假设我测试为特定对象是否存在等:

List<MyObject> actual = target.GetMyObjects(); 
Assert.IsTrue(actual.Count > 0, String.Format("{0} objectes fetched", actual.Count)); 

在“测试结果”在VS2010的窗口,我想看到的结果“的String.Format(” {0} objectes取“,actual.Count)”。
这可能吗?

回答

7

找到它:
我在测试结果窗口中添加了列Output(StdOut)

我改变了我的测试方法的末尾这样:

bool success = actual.Count > 0; 
Assert.IsTrue(success, "No models in the database"); 
if (success) 
{ 
    Console.Write(String.Format("{0} models fetched", actual.Count)); 
} 
0

不,你不想看到输出。

每个单元测试必须成功或失败。这使得测试运行者能够将测试结果聚合成单个失败/通过测试结果。如果需要人工检查,单元测试的重点就会丢失 - 必须实现自动化。

+0

是的,我想测试成功。我也希望这个在测试结果窗口中看到这个输出。我已经将几个测试分组到了一个有序的测试中,但我部分地希望他们的反馈,比如在这种情况下,测试是否存在项目。 不需要人工检查,但是如果我看看测试并查看项目数量,那是我想看到的信息 – citronas 2011-05-13 12:46:03

+1

您无法从声明中获取输出,但可以使用控制台。 WriteLine:http://blogs.msdn.com/b/ploeh/archive/2007/10/06/racetroubleshootingusingconsoleoutputinvsts.aspx – 2011-05-13 13:39:32

+15

**长期运行**,您不希望看到输出。但是当你编写测试时,有时输出可能对理解一个不明显的原因失败的测试非常有用。 – 2012-08-09 15:35:30

2

是的,这是可能的。如果测试失败,那么您在第二个参数中输入的任何消息都可能有用。在您的情况下,如果计数值对您调试错误很重要,请继续处理。 即使在调试此信息时稍后自动执行测试失败或后续测试可能会有所帮助。 http://www.creatingsoftware.net/2010/03/best-practices-for-assert-statements-in.html

+0

那么,如果测试成功,我如何在“测试结果”窗口中看到我的消息? – citronas 2011-05-13 12:47:08

0

另外,您可以使用

Debug.Print("whatever"); 

然后当你运行测试,你得到的超链接“输出”成功/失败窗口将显示您的所有调试消息。

显然,你需要添加

Using System.Diagnostics; 

大教堂