forked from VSoftTechnologies/DUnitX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDUnitXTest_XE.dpr
129 lines (118 loc) · 5.03 KB
/
DUnitXTest_XE.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
121
122
123
124
125
126
127
128
129
program DUnitXTest_XE;
{$IFNDEF GUI}
{$APPTYPE CONSOLE}
{$ENDIF}
{$STRONGLINKTYPES ON}
uses
SysUtils,
DUnitX.Loggers.GUI.VCL in '..\DUnitX.Loggers.GUI.VCL.pas',
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';
var
runner : ITestRunner;
results : IRunResults;
logger : ITestLogger;
nunitLogger : ITestLogger;
begin
{$IFDEF GUI}
DUnitX.Loggers.GUI.VCL.Run;
exit;
{$ENDIF}
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.