我有一个 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 不生产控制台应用程序的两个原因:
CONSOLE_TESTRUNNER
未定义。- 您的项目代码中的某处有
{$APPTYPE GUI}
。
我有理由相信上述第 2 项是导致您出现问题的原因。
关于delphi - 什么可能导致编译器不产生控制台输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9975568/