私はFMX GUI出力に変換しようとしているコンソールベースのDUNITXユニットテストプログラムを持っています。エンバカデロのドキュメントhereを読んだ、私は、次の手順を実行して、テストプログラムファイルを変更:Delphi DunitX FMX GUIロガー
- はDUnitX.Loggers.Consoleユニット
- がコメントアウトコメントアウトDUnitX.Loggers.GUIXユニット
- を含ま{$ APPTYPE CONSOLE}指令
- ロガーをロガーに変更しました:= TGUIXTestRunner.Create(nil);
修正リストのようになります。私は(東京10.2を使用して)これを実行すると
program HTMLParserTest;
{$IFNDEF TESTINSIGHT}
//{$APPTYPE CONSOLE}
{$ENDIF}{$STRONGLINKTYPES ON}
uses
System.SysUtils,
{$IFDEF TESTINSIGHT}
TestInsight.DUnitX,
{$ENDIF }
// DUnitX.Loggers.Console,
DUnitX.Loggers.GUIX,
DUnitX.Loggers.Xml.NUnit,
DUnitX.TestFramework,
test.ITUtils.Delphi in 'test.ITUtils.Delphi.pas',
ITUtils.Delphi in '..\Concept Test\ITUtils.Delphi.pas',
test.ITsimplehtmlparser.Delphi in 'test.ITsimplehtmlparser.Delphi.pas',
ITTools.simplehtmlparser.Delphi in '..\Concept
Test\ITTools.simplehtmlparser.Delphi.pas';
var
runner : ITestRunner;
results : IRunResults;
logger : ITestLogger;
nunitLogger : ITestLogger;
begin
{$IFDEF TESTINSIGHT}
TestInsight.DUnitX.RunRegisteredTests;
exit;
{$ENDIF}
try
//Check command line options, will exit if invalid
TDUnitX.CheckCommandLine;
//Create the test runner
runner := TDUnitX.CreateRunner;
//Tell the runner to use RTTI to find Fixtures
runner.UseRTTI := True;
//tell the runner how we will log things
//Log to the console window
// logger := TDUnitXConsoleLogger.Create(true);
logger := TGUIXTestRunner.Create(nil);
runner.AddLogger(logger);
//Generate an NUnit compatible XML File
nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
runner.AddLogger(nunitLogger);
runner.FailsOnNoAsserts := False; //When true, Assertions must be made during tests;
//Run tests
results := runner.Execute;
if not results.AllPassed then
System.ExitCode := EXIT_ERRORS;
{$IFNDEF CI}
//We don't want this happening when running under CI.
if TDUnitX.Options.ExitBehavior = TDUnitXExitBehavior.Pause then
begin
System.Write('Done.. press <Enter> key to quit.');
System.Readln;
end;
{$ENDIF}
except
on E: Exception do
System.Writeln(E.ClassName, ': ', E.Message);
end;
end.
私は次のエラーを取得する:
私も私ことに注意してくださいコンパイルするfmxフォームが見つからないので、DUNITXソースへのパスをライブラリパスに含める必要がありました。
私はここに何かがあると仮定します。これについては、ドキュメントが少し薄いので、どんな助けもありがたいです。
おかげ
「APPTYPE」ラインから「$」を削除してください: '//{$ APPTYPEコンソール} '。 '{APPTYPE CONSOLE} 'としてみてください。または、それを完全に削除します。 –
両方とも試してみましたが、残念ながら同じ結果 – cheechaway
このオプションはチェックされていません。 – cheechaway