如何忽略Windows“调试错误!”自动化测试中的对话框

时间:2013-01-22 23:42:17

标签: windows debugging automated-tests

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

enter image description here

不幸的是,在我手动按中止重试忽略之前,此对话框仍然存在。这使我无法以自动方式运行这些测试。我试过通过Windows CDB调试器调用可执行文件与各种CDB选项,没有运气。

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

2 个答案:

答案 0 :(得分:0)

the Microsoft C Runtime Library manual page on abort()中所述,当您链接到Microsoft CRT的调试版本时,此消息框是预期的。您可以链接到发布CRT以避免该消息,但是Windows将捕获崩溃(因为abort()被认为是CRT的程序崩溃),您将看到Windows错误报告消息。

手册页还说明您可以使用the Microsoft-extension _set_abort_behavior() function.禁用代码中的消息框如果您走这条路线,您可能想要某种方法来控制消息是否已启用,使用命令行开关或类似的东西。

答案 1 :(得分:-2)

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

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

顺便说一句:测试失败。