以下是我的情景:
我有一套WATIN GUI测试,针对每个构建CI的ASP.net MVC3 Web应用程序运行。测试验证了在给定某些输入时GUI的行为与预期一致。
Web应用程序使用ELMAH xml文件记录异常。
问题:如何验证每次测试运行期间没有发生意外异常。如果发生异常,在NUNIT输出中提供指向异常的ELMAH细节的链接也是很好的。
答案 0 :(得分:1)
Elmah在Web应用程序中运行,这是一个与测试运行器不同的过程。没有简单的方法可以直接拦截未处理的错误。 首先想到的是观察包含Elmah XML错误报告的文件夹(App_Data?)。
您可以在每次测试开始时清除文件夹中的错误报告,并在测试结束时检查它是否仍为空。如果文件夹不为空,则可以将错误报告复制到测试输出中。
这种方法不是防弹的。可能会发生错误,但在检查文件夹时尚未(完全)写入XML文件。例如,当您的Web应用程序超时时。如果您尝试读取仍在编写的XML文件,则可能还会遇到文件锁定问题。
您可以将Elmah配置为登录数据库并从那里读取错误报告,而不是从磁盘读取XML文件。这可以帮助您解决文件锁定问题。
答案 1 :(得分:1)
为什么不在WatiN测试的设置中转到Elmah报告视图(可能是elmah.axd)并读取其中记录的最新错误的时间戳。然后在测试后执行相同的操作并断言时间戳是相同的。
很容易从同一行读取这个最新错误的url并记录在你的nunit输出中失败断言的消息中。
答案 2 :(得分:0)
这是我的测试所做的:
似乎运行良好,我们已经发现了一些在人类测试应用程序之前不会出现的错误。