2010-06-29 56 views
2

希望对你有好的n简单的一个VS2010单元测试 - 抛出的例外是空的

在VS2010的测试框架中运行一些测试。 当其中某处出现异常时,结果屏幕不会显示任何细节。

最简单的例子:

[TestMethod] 
public void DoTest() 
{ 
    int y = 10 - 10; 
    int x = 10/y; 
} 
MyProj.DoTest抛出异常

测试方法: ...

你不能看到它在这里,但在此之前的 '...' 有某种特殊隐藏字符(显示为正方形)。 如何查看详细信息,最好是堆栈跟踪。

+0

我不知道答案,但在此期间,你应该能够看到例外调试器。 – 2010-06-29 15:11:17

+0

测试失败并在引发异常后立即退出。所以如果没有将它包装在try/catch中并检查捕获到的异常,就无法看到它。 在这种情况下罚款,但不是当我不知道异常来自何处时。 – 2010-06-29 15:23:39

回答

0

我会使用调试器跟踪测试代码,直到找到引发异常的行。这将帮助你缩小范围。

+0

这就是我现在正在做的。 没有其他办法吗?在MS方面似乎很差。 NUnit总是会给你一个完整的堆栈跟踪失败的测试。 现在,即使当我找到这条线时,我也不明白它为什么会失败,我必须编辑代码以在失败的线上放置一个try/catch,以便能够看到导致它失败的任何事情。 – 2010-06-29 19:39:40

2

实际上,您不必添加try/catch块。如果你只需点击,而不是运行调试:

alt text http://i50.tinypic.com/212a0ko.jpg

它会自动断开那里,告诉你的异常类型: alt text http://i46.tinypic.com/16m3puh.jpg

您还必须确保进入调试 - >例外( Ctrl + Alt + E),然后转到公共语言运行时异常 - >系统 - > ystem.DivideByZero异常是引发或User-andled。如果没有选中,那么在调试时不会显示任何内容,并且您将获得所描述的内容。当然,对于所有的例外情况都是如此。

-1

您在测试结果窗口或右键单击失败的测试只需双击>查看测试结果详细