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

升级Delphi 11后DUnitX GUI测试编译失败:缺失DUnitX.Loggers.GUI.VCL.dfm

解决Delphi 11下DUnitX GUI测试程序编译故障

1. 确认DUnitX安装完整性

  • 检查Delphi的库路径,确保包含DUnitX完整源码目录(必须包含DUnitX.Loggers.GUI.VCL.pas和对应DUnitX.Loggers.GUI.VCL.dfm文件的路径)
  • 若通过GetIt安装,先卸载现有版本,重新搜索安装适配Delphi 11的最新版DUnitX
  • 手动安装的话,把DUnitX源码根目录(含所有子文件夹)添加到Delphi的库路径和搜索路径中

2. 修复单元引用与窗体关联

  • 不要注释DUnitX.Loggers.GUI.VCL单元引用,确保该单元在项目中正确引入
  • 打开DUnitX.Loggers.GUI.VCL.pas,检查文件开头是否有{$R *.dfm}指令,缺失则手动添加
  • 若dfm文件丢失,从DUnitX源码包(本地备份或重新下载的完整源码)中复制对应dfm文件到pas文件同目录

3. 项目配置检查

  • 打开项目选项,进入Delphi Compiler -> Search Path,确认DUnitX的GUI相关目录已添加
  • 检查项目目标平台,优先选择Win32/Win64(DUnitX对这两个平台支持更稳定)
  • 清理编译缓存:删除项目目录下的*.dcu、*.exe、*.cfg文件后重新编译

4. 替代方案:手动实现简易GUI测试运行

如果上述方法无效,可绕过默认GUI runner,用以下代码实现基础测试运行:

uses
  DUnitX, DUnitX.Loggers.Console, DUnitX.Loggers.Xml, Vcl.Dialogs;

var
  runner: ITestRunner;
  results: ITestResults;
  consoleLogger: ITestLogger;
begin
  Application.Initialize;
  runner := TDUnitX.CreateRunner;
  consoleLogger := TDUnitXConsoleLogger.Create;
  runner.AddLogger(consoleLogger);
  runner.AddLogger(TDUnitXXmlLogger.Create('TestResults.xml'));
  runner.RegisterTests;
  results := runner.Execute;
  ShowMessage(Format('测试完成:%d 通过,%d 失败,%d 跳过', [results.PassedCount, results.FailedCount, results.SkippedCount]));
  Application.Terminate;
end.

内容的提问来源于stack exchange,提问作者Franz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.05 10:12:04