delphi - 什么可能导致编译器不产生控制台输出

标签 delphi delphi-2010 dunit

我有一个 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。

最佳答案

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

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

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

关于delphi - 什么可能导致编译器不产生控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9975568/

相关文章:

delphi - 如何从 Delphi 中的 Unidac 查询组件传递 NULL 值?

sqlite - 在 SQLite、FireDac、Delphi 中插入记录时内存不足

delphi - 如何在 Delphi 2010 中将 TypeLib 导入为 safecall 与 stdcall

delphi - 有人知道 Graphics32 目前的状况吗?

unit-testing - 德尔福单元测试: Writing a simple spy for the CUT

unit-testing - 在使用模拟对象时,如何防止我的单元测试需要有关实现内部的知识?

德尔福打印底漆

.net - 使用 MSBuild 构建 Delphi 项目是否会创建 .Net 依赖项?

delphi - 根据当前事件项目进行条件编译

delphi - 在 Delphi 2010 上更新 DUnit