program MycTests; {$IFNDEF TESTINSIGHT} {$APPTYPE CONSOLE} {$ENDIF} {$STRONGLINKTYPES ON} uses FastMM5, DUnitX.MemoryLeakMonitor.FastMM5, System.SysUtils, {$IFDEF TESTINSIGHT} TestInsight.DUnitX, {$ELSE} DUnitX.Loggers.Console, {$ENDIF } DUnitX.TestFramework, TestNotifier in 'TestNotifier.pas', TestNotifier_Threading in 'TestNotifier_Threading.pas' {/TestNotifier_ChaosStress in 'TestNotifier_ChaosStress.pas',}, TestNotifier_ChaosStress in 'TestNotifier_ChaosStress.pas', TestTasks in 'TestTasks.pas', TestCoreFutures in 'TestCoreFutures.pas', TestFutures in 'TestFutures.pas', Myc.Test.Core.Atomic in '..\Src\Myc.Test.Core.Atomic.pas', Myc.Test.Signals.Latch in '..\Src\Myc.Test.Signals.Latch.pas', Myc.Test.Signals.Dirty in '..\Src\Myc.Test.Signals.Dirty.pas', Test.Core.Mutable in 'Test.Core.Mutable.pas', TestDataRecord in 'TestDataRecord.pas', TestDataArray in 'TestDataArray.pas', Myc.Data.Types in '..\Src\Myc.Data.Types.pas', Myc.Data.Types.Ordinal in 'Myc.Data.Types.Ordinal.pas', Myc.Data.Types.Records in 'Myc.Data.Types.Records.pas', TestDataTypes in 'TestDataTypes.pas', Myc.Data.Types.Float in 'Myc.Data.Types.Float.pas', Myc.Data.Types.Arrays in 'Myc.Data.Types.Arrays.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.