我有一个使用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已经消失了......每次我加入一个单元,德尔福IDE删除此测试。
你知道我为什么以及如何避免它吗?
因为'XmlTestRunner2'没有任何初始化代码而不是单元测试文件,所以我可以肯定地将这个监听器添加到使用列表中。只有稍后调用才会链接,具体取决于构建配置。 ** So Marcus,所以解决了我的问题!** 在其他情况下,我会应用'gabr'中的'proxy unit'方法。 – TridenT 2010-04-01 09:11:34