You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Delphi Seattle环境下的DUnitX中启用StackTrace?

在Delphi Seattle中启用DUnitX的StackTrace功能

针对你不想重新编译随Delphi分发的DUnitX框架的需求,这里有两个无需修改框架源码的最佳启用方式:

  • 通过项目条件编译指令开启
    直接在你的测试项目的项目选项(Project Options)中,找到“条件编译”(Conditional defines)部分,添加以下指令:

    • 首先添加DUNITX_STACKTRACE来启用StackTrace功能的基础开关
    • 再根据你的目标平台添加对应的提供器指令,比如Windows平台就加DUNITX_STACKTRACE_WINDOWS
      这样框架会自动加载对应平台的StackTrace实现,完全不需要改动DUnitX的源文件。
  • 手动注册StackTrace提供器
    如果条件编译的方式不生效,你可以在测试项目的初始化代码里手动注册提供器。比如在测试项目的主单元或者专门的初始化单元里添加:

    uses
      DUnitX.StackTrace, DUnitX.StackTrace.Windows; // 对应Windows平台,其他平台换对应单元
    
    initialization
      TDUnitX.RegisterStackTraceProvider(TWindowsStackTraceProvider.Create);
    end.
    

    这种方式直接绕过条件编译,强制激活StackTrace功能,适合需要更灵活控制的场景。

关于你问的默认情况:

默认状态下,DUnitX在测试Setup、Teardown或者测试执行环节抛出异常时,不会自动生成StackTrace。因为这个功能是可选特性,框架默认没有启用,必须通过上面的两种方式之一显式开启后,才能在错误发生时获取到对应的调用栈信息。

内容的提问来源于stack exchange,提问作者Rodrigo Farias Rezino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:07:16