5

如果我添加一些单元,我有一个不会编译为控制台的 DUnit 项目。
项目 (dpr) 由向导创建并CONSOLE_TESTRUNNER定义。

{$IFDEF CONSOLE_TESTRUNNER}
{$APPTYPE CONSOLE}
{$ENDIF}

begin
  Application.Initialize;
  if IsConsole then // <-- IsConsole is set to False.
    with TextTestRunner.RunRegisteredTests do
      Free
  else
    GUITestRunner.RunRegisteredTests;
end.

使其失败的单元包括一些 VCL 组件,但没有对其运行任何测试。
我什至尝试设置链接器选项,但没有任何区别。
有人遇到过类似的问题吗?
只是为了澄清:这个项目是 Delphi 2010 中的 Win32。

4

1 回答 1

5

该代码对我来说很好。我可以想到 Delphi 不生产控制台应用程序的两个原因:

  1. CONSOLE_TESTRUNNER没有定义。
  2. 您的项目代码中有{$APPTYPE GUI}某处。

我有理由相信上述第 2 项是您的问题的原因。

于 2012-04-02T11:34:51.533 回答