forked from VSoftTechnologies/DUnitX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDUnitXTest_XE3.dpr
120 lines (112 loc) · 4.93 KB
/
DUnitXTest_XE3.dpr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
program DUnitXTest_XE3;
{$APPTYPE CONSOLE}
{$STRONGLINKTYPES ON}
uses
SysUtils,
DUnitX.Loggers.Console in '..\DUnitX.Loggers.Console.pas',
DUnitX.Loggers.Text in '..\DUnitX.Loggers.Text.pas',
DUnitX.MacOS.Console in '..\DUnitX.MacOS.Console.pas',
DUnitX.Windows.Console in '..\DUnitX.Windows.Console.pas',
DUnitX.ConsoleWriter.Base in '..\DUnitX.ConsoleWriter.Base.pas',
DUnitX.Loggers.XML.xUnit in '..\DUnitX.Loggers.XML.xUnit.pas',
DUnitX.Generics in '..\DUnitX.Generics.pas',
DUnitX.Utils in '..\DUnitX.Utils.pas',
DUnitX.WeakReference in '..\DUnitX.WeakReference.pas',
DUnitX.Test in '..\DUnitX.Test.pas',
DUnitX.TestFixture in '..\DUnitX.TestFixture.pas',
DUnitX.TestResult in '..\DUnitX.TestResult.pas',
DUnitX.RunResults in '..\DUnitX.RunResults.pas',
DUnitX.TestRunner in '..\DUnitX.TestRunner.pas',
DUnitX.InternalInterfaces in '..\DUnitX.InternalInterfaces.pas',
DUnitX.TestFramework in '..\DUnitX.TestFramework.pas',
DUnitX.DUnitCompatibility in '..\DUnitX.DUnitCompatibility.pas',
DUnitX.IoC in '..\DUnitX.IoC.pas',
DUnitX.Utils.XML in '..\DUnitX.Utils.XML.pas',
DUnitX.StackTrace.JCL in '..\DUnitX.StackTrace.JCL.pas',
DUnitX.StackTrace.MadExcept3 in '..\DUnitX.StackTrace.MadExcept3.pas',
DUnitX.StackTrace.MadExcept4 in '..\DUnitX.StackTrace.MadExcept4.pas',
DUnitX.StackTrace.EurekaLog7 in '..\DUnitX.StackTrace.EurekaLog7.pas',
DUnitX.Loggers.Null in '..\DUnitX.Loggers.Null.pas',
DUnitX.FixtureResult in '..\DUnitX.FixtureResult.pas',
DUnitX.Tests.Assert in 'DUnitX.Tests.Assert.pas',
DUnitX.Tests.DUnitCompatibility in 'DUnitX.Tests.DUnitCompatibility.pas',
DUnitX.Tests.Example in 'DUnitX.Tests.Example.pas',
DUnitX.Tests.Framework in 'DUnitX.Tests.Framework.pas',
DUnitX.Tests.IoC in 'DUnitX.Tests.IoC.pas',
DUnitX.Tests.TestFixture in 'DUnitX.Tests.TestFixture.pas',
DUnitX.Tests.Utils.XML in 'DUnitX.Tests.Utils.XML.pas',
DUnitX.Tests.WeakReference in 'DUnitX.Tests.WeakReference.pas',
DUnitX.Tests.Loggers.XML.NUnit in 'DUnitX.Tests.Loggers.XML.NUnit.pas',
DUnitX.Loggers.XML.NUnit in '..\DUnitX.Loggers.XML.NUnit.pas',
DUnitX.SingleNameSpace in 'DUnitX.SingleNameSpace.pas',
DUnitX.MemoryLeakMonitor.Default in '..\DUnitX.MemoryLeakMonitor.Default.pas',
DUnitX.MemoryLeakMonitor.FastMM4 in '..\DUnitX.MemoryLeakMonitor.FastMM4.pas',
DUnitX.Tests.MemoryLeaks in 'DUnitX.Tests.MemoryLeaks.pas',
DUnitX.Extensibility in '..\DUnitX.Extensibility.pas',
DUnitX.Extensibility.PluginManager in '..\DUnitX.Extensibility.PluginManager.pas',
DUnitX.FixtureProviderPlugin in '..\DUnitX.FixtureProviderPlugin.pas',
DUnitX.Tests.CommandLineParser in 'DUnitX.Tests.CommandLineParser.pas',
DUnitX.Filters in '..\DUnitX.Filters.pas',
DUnitX.CategoryExpression in '..\DUnitX.CategoryExpression.pas',
DUnitX.Tests.CategoryParser in 'DUnitX.Tests.CategoryParser.pas',
DUnitX.TestNameParser in '..\DUnitX.TestNameParser.pas',
DUnitX.Tests.TestNameParser in 'DUnitX.Tests.TestNameParser.pas',
DUnitX.AutoDetect.Console in '..\DUnitX.AutoDetect.Console.pas',
DUnitX.CommandLine.OptionDef in '..\DUnitX.CommandLine.OptionDef.pas',
DUnitX.CommandLine.Options in '..\DUnitX.CommandLine.Options.pas',
DUnitX.CommandLine.Parser in '..\DUnitX.CommandLine.Parser.pas',
DUnitX.OptionsDefinition in '..\DUnitX.OptionsDefinition.pas',
DUnitX.FilterBuilder in '..\DUnitX.FilterBuilder.pas',
DUnitX.Tests.Inheritance in 'DUnitX.Tests.Inheritance.pas',
DUnitX.Tests.ConsoleWriter.Base in 'DUnitX.Tests.ConsoleWriter.Base.pas',
DUnitX.Assert in '..\DUnitX.Assert.pas',
DUnitX.Types in '..\DUnitX.Types.pas',
DUnitX.Init in '..\DUnitX.Init.pas';
var
runner : ITestRunner;
results : IRunResults;
logger : ITestLogger;
nunitLogger : ITestLogger;
begin
try
TDUnitX.CheckCommandLine;
//Create the runner
runner := TDUnitX.CreateRunner;
runner.UseRTTI := True;
runner.FailsOnNoAsserts := True; //Assertions must be made during tests;
//tell the runner how we will log things
if TDUnitX.Options.ConsoleMode <> TDunitXConsoleMode.Off then
begin
logger := TDUnitXConsoleLogger.Create(TDUnitX.Options.ConsoleMode = TDunitXConsoleMode.Quiet);
runner.AddLogger(logger);
end;
nunitLogger := TDUnitXXMLNUnitFileLogger.Create(TDUnitX.Options.XMLOutputFile);
runner.AddLogger(nunitLogger);
logger := nil;
nunitLogger := nil;
//Run tests
results := runner.Execute;
runner := nil;
//Let the CI Server know that something failed.
{$IFDEF CI}
if not results.AllPassed then
System.ExitCode := EXIT_ERRORS;
{$ELSE}
//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}
results := nil;
except
on E: Exception do
begin
System.Writeln(E.ClassName, ': ', E.Message);
{$IFNDEF CI}
System.Readln;
{$ENDIF}
end;
end;
end.