我正在使用Delphi 11和DUnitx单元测试。我知道我可以在工具/选项中关闭“语言异常”。但是这会关闭所有项目的“语言异常”。有没有办法为“单元测试”或“每个项目”关闭它们。
qyswt5oh1#
在所有 Delphi 版本中,我所知道的实现这一点的唯一方法是使用断点。在代码中要禁用调试器异常处理的位置放置一个断点。右键单击该断点以进入其properties。在“高级”选项中,关闭Break选项并打开Ignore subsequent exceptions选项。在代码中要重新启用调试器的异常处理的位置放置另一个断点。在属性中,关闭Break选项并打开Handle subsequent exceptions选项。现在运行代码,您可以根据需要进行调试,但屏蔽掉的代码除外。
Break
Ignore subsequent exceptions
Handle subsequent exceptions
8tntrjer2#
GExperts有一个expert that can filter specific exceptions,不仅仅是异常类型,还取决于消息。它是特定于项目的。我不确定它在 Delphi 11中的工作效果如何。它还有一个副作用:IDE会取得每个例外的焦点,然后切换回程式。如果有许多例外,这会使计算机几乎无法使用。
gab6jxml3#
如果您使用DUnitx进行测试,那么我建议您使用TestInsight。这是在 Delphi IDE中实现单元测试的一种非常好的方法。
Testinsight插件编译测试程序并在没有调试器的情况下运行。
Download TestInsightWatch Video
或者不使用调试器直接运行测试程序:Ctrl+Shift+F9组合键
3条答案
按热度按时间qyswt5oh1#
在所有 Delphi 版本中,我所知道的实现这一点的唯一方法是使用断点。
在代码中要禁用调试器异常处理的位置放置一个断点。右键单击该断点以进入其properties。在“高级”选项中,关闭
Break
选项并打开Ignore subsequent exceptions
选项。在代码中要重新启用调试器的异常处理的位置放置另一个断点。在属性中,关闭
Break
选项并打开Handle subsequent exceptions
选项。现在运行代码,您可以根据需要进行调试,但屏蔽掉的代码除外。
8tntrjer2#
GExperts有一个expert that can filter specific exceptions,不仅仅是异常类型,还取决于消息。它是特定于项目的。我不确定它在 Delphi 11中的工作效果如何。
它还有一个副作用:IDE会取得每个例外的焦点,然后切换回程式。如果有许多例外,这会使计算机几乎无法使用。
gab6jxml3#
如果您使用DUnitx进行测试,那么我建议您使用TestInsight。这是在 Delphi IDE中实现单元测试的一种非常好的方法。
Testinsight插件编译测试程序并在没有调试器的情况下运行。
Download TestInsight
Watch Video
或者不使用调试器直接运行测试程序:Ctrl+Shift+F9组合键