program MycTests; {$IFNDEF TESTINSIGHT} {$APPTYPE CONSOLE} {$ENDIF} {$STRONGLINKTYPES ON} uses FastMM5, DUnitX.MemoryLeakMonitor.FastMM5, System.SysUtils, {$IFDEF TESTINSIGHT} TestInsight.DUnitX, {$ELSE} DUnitX.Loggers.Console, DUnitX.Loggers.Xml.NUnit, {$ENDIF } DUnitX.TestFramework, TestNotifier in 'TestNotifier.pas', TestSList in 'TestSList.pas', TestStack in 'TestStack.pas', Myc.Core.Notifier in '..\Src\Myc.Core.Notifier.pas', TestNotifier_Threading in 'TestNotifier_Threading.pas', TestNotifier_ChaosStress in 'TestNotifier_ChaosStress.pas'; { keep comment here to protect the following conditional from being removed by the IDE when adding a unit } {$IFNDEF TESTINSIGHT} var runner: ITestRunner; results: IRunResults; logger: ITestLogger; nunitLogger : ITestLogger; {$ENDIF} begin {$IFDEF TESTINSIGHT} TestInsight.DUnitX.RunRegisteredTests; {$ELSE} 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; //When true, Assertions must be made during tests; runner.FailsOnNoAsserts := False; //tell the runner how we will log things //Log to the console window if desired if TDUnitX.Options.ConsoleMode <> TDunitXConsoleMode.Off then begin logger := TDUnitXConsoleLogger.Create(TDUnitX.Options.ConsoleMode = TDunitXConsoleMode.Quiet); runner.AddLogger(logger); end; //Generate an NUnit compatible XML File nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile); runner.AddLogger(nunitLogger); //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 key to quit.'); System.Readln; end; {$ENDIF} except on E: Exception do System.Writeln(E.ClassName, ': ', E.Message); end; {$ENDIF} end.