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コンポーネントが含まれていますが、それらに対してテストは実行されていません。
リンカーオプションを設定しようとしましたが、違いはありませんでした。
誰かが同様の問題を経験しましたか?
明確にするために:このプロジェクトはDelphi2010のWin32です。

4

1 に答える 1

5

そのコードは私にとっては問題なく機能します。Delphiがコンソールアプリを作成していない理由は2つ考えられます。

  1. CONSOLE_TESTRUNNER定義されてない。
  2. {$APPTYPE GUI}プロジェクトのコードのどこかにあります。

上記の項目2が問題の原因であると私は合理的に確信しています。

于 2012-04-02T11:34:51.533 に答える