forked from VSoftTechnologies/DUnitX
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DUnitX.OptionsDefinition.pas
127 lines (104 loc) · 6.26 KB
/
DUnitX.OptionsDefinition.pas
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
{***************************************************************************}
{ }
{ DUnitX }
{ }
{ Copyright (C) 2013 Vincent Parrett }
{ }
{ vincent@finalbuilder.com }
{ http://www.finalbuilder.com }
{ }
{ }
{***************************************************************************}
{ }
{ Licensed under the Apache License, Version 2.0 (the "License"); }
{ you may not use this file except in compliance with the License. }
{ You may obtain a copy of the License at }
{ }
{ http://www.apache.org/licenses/LICENSE-2.0 }
{ }
{ Unless required by applicable law or agreed to in writing, software }
{ distributed under the License is distributed on an "AS IS" BASIS, }
{ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. }
{ See the License for the specific language governing permissions and }
{ limitations under the License. }
{ }
{***************************************************************************}
unit DUnitX.OptionsDefinition;
interface
uses
DUnitX.TestFramework;
//Defines the command line options for DUnitX. Add any new options definitions
implementation
uses
DUnitX.CommandLine.Options;
procedure RegisterOptions;
var
def : IOptionDefintion;
begin
//enable passing an options file containing options.
def := TOptionsRegistry.RegisterOption<string>('options','opt','Options File',nil);
def.IsOptionFile := true;
def := TOptionsRegistry.RegisterOption<boolean>('hidebanner','b','Hide the License Banner',
procedure(value : boolean)
begin
TDUnitX.Options.HideBanner := value;
end);
def.HasValue := false;
TOptionsRegistry.RegisterOption<string>('xmlfile','xml','XML output file path',
procedure(value :string)
begin
TDUnitX.Options.XMLOutputFile := value;
end);
TOptionsRegistry.RegisterOption<string>('runlist','rl','Specify the name of a file which lists the tests to run.',
procedure(value :string)
begin
TDUnitX.Options.RunListFile := value;
end);
def := TOptionsRegistry.RegisterOption<string>('run','r','Specify the tests to run, separate by commas',
procedure(value :string)
begin
TDUnitX.Options.Run.Add(value);
end);
def.AllowMultiple := true;
def := TOptionsRegistry.RegisterOption<string>('include','i','Specify the categories to include',
procedure(value :string)
begin
TDUnitX.Options.Include := value;
end);
def := TOptionsRegistry.RegisterOption<string>('exclude','e','Specify the categories to exclude',
procedure(value :string)
begin
TDUnitX.Options.Exclude := value;
end);
def := TOptionsRegistry.RegisterOption<boolean>('dontshowignored','dsi','Don''t show ignored tests',
procedure(value : boolean)
begin
TDUnitX.Options.DontShowIgnored := true;
end);
def.HasValue := false;
TOptionsRegistry.RegisterOption<TLogLevel>('loglevel','l','Logging Level - Information, Warning, Error',
procedure(value : TLogLevel)
begin
TDUnitX.Options.LogLevel := value
end);
def := TOptionsRegistry.RegisterOption<TDUnitXExitBehavior>('exitbehavior','exit','Exit behavior - Continue, Pause',
procedure(value : TDUnitXExitBehavior)
begin
TDUnitX.Options.ExitBehavior := value
end);
def := TOptionsRegistry.RegisterOption<boolean>('h','?','Show Usage',
procedure(value : boolean)
begin
TDUnitX.Options.ShowUsage := value;
end);
def.HasValue := False;
def := TOptionsRegistry.RegisterUnNamedOption<string>('',
procedure(value :string)
begin
TDUnitX.Options.XMLOutputFile := value;
end);
def.Hidden := True;
end;
initialization
RegisterOptions;
end.