1

我有一个测试套件,它运行带有各种命令行选项的 Windows 可执行文件,以测试可执行文件是否正常工作。在某些测试用例中,这些参数会导致可执行文件严重损坏,并出现以下对话框:

在此处输入图像描述

不幸的是,这个对话框一直存在,直到我手动按下AbortRetryIgnore。这使我无法以自动化方式运行这些测试。我尝试通过带有各种 CDB 选项的 Windows CDB 调试器调用可执行文件,但没有成功。

如何防止这些对话框出现或自动继续测试?

4

2 回答 2

0

正如Microsoft C 运行时库手册页中所述abort(),当您链接到 Microsoft CRT 的调试版本时,会出现此消息框。您可以链接到发布 CRT 以避免该消息,但 Windows 将捕获崩溃(因为 abort() 被 CRT 认为是程序崩溃)并且您会看到 Windows 错误报告消息。

手册页还说您可以使用Microsoft 扩展_set_abort_behavior()功能在代码中禁用消息框。如果你走那条路,你可能想要有一些方法来控制是否启用消息,使用命令行开关或类似的东西。

于 2013-01-23T04:57:07.360 回答
0

从窗口标题可以清楚地看出,您正在测试程序的 Debug 版本。这不是一个好的做法,您没有按照程序在客户机器上运行的方式对其进行测试。Debug 版本适合程序员调试他们的代码。但它偶尔会隐藏一个错误。此类错误可能很难诊断,您需要进行测试以清除它们。您没有执行这样的测试。

仅测试发布版本。然后它也自动解决了这个对话框问题,CRT 的发布版本不显示它。

顺便说一句:测试失败。

于 2013-01-23T01:39:34.670 回答