gpt4 book ai didi

delphi - 为什么我有了新设备后 'uses unit' 就消失了?

转载 作者:行者123 更新时间:2023-12-03 15:15:15 33 4
gpt4 key购买 nike

我有一个使用 DUnit 框架的应用程序单元测试项目。该项目有一个被 $IFDEF 包围的单元,用于在 xml 文件中输出测试结果,而不是 gui 或只是命令行。 XML_OUTPUT 定义通过切换构建配置来启用。

program DelphiCodeToDoc_Tests;

uses
TestFramework,
TextTestRunner,
Sysutils,
Forms,
GUITestRunner,
{$IFDEF XML_OUTPUT}
XmlTestRunner2 in 'DUnit_addon\XmlTestRunner2.pas',
{$ENDIF}
DCTDSetupTests in 'IntegrationTests\DCTDSetupTests.pas',
...

这非常有效。当我从 IDE 向此项目添加新单元时(带有“文件>新建>单元”的新单元),问题就会出现。

测试项目现在是:

uses
TestFramework,
TextTestRunner,
Sysutils,
Forms,
GUITestRunner,
DCTDSetupTests in 'IntegrationTests\DCTDSetupTests.pas',
...
MyNewUnit in 'IntegrationTests\MyNewUnit.pas';

如您所见,测试 XML_OUTPUT 已经消失...每次我添加一个单元时,Delphi IDE 都会删除该测试。

你知道为什么以及如何避免它吗?

最佳答案

您可以向主程序添加代理单元来绕过此有问题的行为(我们许多人认为这是一个错误,而不是一个功能)。

program DelphiCodeToDoc_Tests;

uses
...
XMLTestRunnerProxy,
...

unit XMLTestRunnerProxy;

interface

{$IFDEF XML_OUTPUT}
uses
XmlTestRunner2 in 'DUnit_addon\XmlTestRunner2.pas';
{$ENDIF}

implementation

end.

关于delphi - 为什么我有了新设备后 'uses unit' 就消失了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2555259/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com