以下是我的场景:
问:如何验证在每次测试运行期间没有意外的异常发生。如果确实发生了异常,最好在NUIT输出中提供一个到异常的ELMAH详细信息的链接。
ev7lccsx1#
Elmah在Web应用程序中运行,它是一个独立于测试运行器的进程。没有简单的方法直接拦截未处理的错误。首先想到的是查看保存Elmah XML错误报告的文件夹(App_Data?)。您可以在每次测试开始时从文件夹中清 debugging 误报告,并在测试结束时检查文件夹是否仍为空。如果文件夹不为空,则可以将错误报告复制到测试输出中。这种方法并不是无懈可击的。当您检查文件夹时,可能会发生错误,但XML文件尚未(完全)写入。例如,当您的Web应用程序超时时。如果您尝试读取仍在写入的XML文件,则可能还会遇到文件锁定问题。您可以配置Elmah来记录数据库并从那里读取错误报告,而不是从磁盘阅读XML文件。这将有助于您在发生文件锁定问题时解决这些问题。
ztmd8pv52#
为什么不在WatiN测试的设置中转到Elmah报告视图(可能是elmah.axd)并读取记录在那里的最新错误的时间戳。然后在测试后做同样的事情并Assert时间戳是相同的。很容易从同一行读取最近的错误的url,并将其记录在失败的assert消息中,然后将其记录在nunit输出中。
nx7onnlm3#
这就是我的测试所做的:1.在测试设置过程中,记录时间1.运行测试1.在测试拆卸期间,浏览到(elmah.axd/download)并解析ELMAH CSV1.筛选出与运行WATIN测试的用户不匹配的行以及UNIX时间早于(1)中记录的时间的行1.如果有行,则将异常消息和错误URL报告给NUNIT。似乎工作得很好,我们已经发现了一些bug,这些bug在人类测试应用程序之前不会出现。
3条答案
按热度按时间ev7lccsx1#
Elmah在Web应用程序中运行,它是一个独立于测试运行器的进程。没有简单的方法直接拦截未处理的错误。首先想到的是查看保存Elmah XML错误报告的文件夹(App_Data?)。
您可以在每次测试开始时从文件夹中清 debugging 误报告,并在测试结束时检查文件夹是否仍为空。如果文件夹不为空,则可以将错误报告复制到测试输出中。
这种方法并不是无懈可击的。当您检查文件夹时,可能会发生错误,但XML文件尚未(完全)写入。例如,当您的Web应用程序超时时。如果您尝试读取仍在写入的XML文件,则可能还会遇到文件锁定问题。
您可以配置Elmah来记录数据库并从那里读取错误报告,而不是从磁盘阅读XML文件。这将有助于您在发生文件锁定问题时解决这些问题。
ztmd8pv52#
为什么不在WatiN测试的设置中转到Elmah报告视图(可能是elmah.axd)并读取记录在那里的最新错误的时间戳。然后在测试后做同样的事情并Assert时间戳是相同的。
很容易从同一行读取最近的错误的url,并将其记录在失败的assert消息中,然后将其记录在nunit输出中。
nx7onnlm3#
这就是我的测试所做的:
1.在测试设置过程中,记录时间
1.运行测试
1.在测试拆卸期间,浏览到(elmah.axd/download)并解析ELMAH CSV
1.筛选出与运行WATIN测试的用户不匹配的行以及UNIX时间早于(1)中记录的时间的行
1.如果有行,则将异常消息和错误URL报告给NUNIT。
似乎工作得很好,我们已经发现了一些bug,这些bug在人类测试应用程序之前不会出现。