8

为什么我不能在 Dunit Test 项目中设置版本信息?此项目禁用该复选框,但其他项目则禁用。看截图:

在此处输入图像描述

4

2 回答 2

13

您可能在测试项目的源代码中缺少 {$R *.res} 指令。它必须在 .dpr 中,否则您将无法在项目选项中使用此功能。

默认情况下它应该在那里,但偶尔会在从项目中添加或删除单元时搞砸。发生这种情况时,它将如下所示:

$R *.res} // notice the missing '{'

如果发生这种情况并且开发人员不知道他们在看什么,他们可能刚刚删除了有问题的行。

此外,如果测试项目以命令行项目开始,它可能没有此指令开始。

于 2012-03-27T14:29:40.430 回答
7

DUnit 单元测试项目的构造不像其他 delphi 项目,这就是为什么您会看到它默认没有资源文件,而这反过来也是为什么在您将{$R *.RES}声明放入自己之前禁用 versioninfo 选项卡的原因。

DUnit 项目可以使用两种配置之一构建,使用 GUI 测试运行程序(它使用 VCL,但您通常不应该修改,GUI 是固定不变的)或控制台模式测试运行程序。虽然控制台应用程序可以链接资源文件,因此可能具有版本信息,事实上许多控制台应用程序都这样做,但您看到的原因是 DUnit 的测试运行程序框架和单元测试项目不是以您习惯的方式构建。

这反过来又会混淆 IDE,并且 IDE 会禁用相关部分。您可以再次添加 {$R} ,这似乎有效,因为您接受了 Kenneth 的回答,但是我只想添加一些背景信息,以帮助未来遇到此问题的人。

于 2012-03-27T15:56:49.800 回答