Class: Cucumber::Configuration
- Inherits:
-
Object
- Object
- Cucumber::Configuration
show all
- Extended by:
- Forwardable
- Includes:
- Constantize
- Defined in:
- lib/cucumber/configuration.rb
Overview
The base class for configuring settings for a Cucumber run.
Class Method Summary
collapse
Instance Method Summary
collapse
#constantize, #underscore
Constructor Details
#initialize(user_options = {}) ⇒ Configuration
Returns a new instance of Configuration.
37
38
39
|
# File 'lib/cucumber/configuration.rb', line 37
def initialize(user_options = {})
@options = default_options.merge(Hash(user_options))
end
|
Class Method Details
.default ⇒ Object
18
19
20
|
# File 'lib/cucumber/configuration.rb', line 18
def self.default
new
end
|
Instance Method Details
#all_files_to_load ⇒ Object
193
194
195
196
197
198
199
200
201
202
203
204
|
# File 'lib/cucumber/configuration.rb', line 193
def all_files_to_load
files = require_dirs.map do |path|
path = path.tr('\\', '/') path = path.gsub(/\/$/, '') File.directory?(path) ? Dir["#{path}/**/*"] : path
end.flatten.uniq
remove_excluded_files_from(files)
files.select! { |f| File.file?(f) }
files.reject! { |f| File.extname(f) == '.feature' }
files.reject! { |f| f =~ /^http/ }
files.sort
end
|
#autoload_code_paths ⇒ Object
133
134
135
|
# File 'lib/cucumber/configuration.rb', line 133
def autoload_code_paths
@options[:autoload_code_paths]
end
|
#custom_profiles ⇒ Object
121
122
123
|
# File 'lib/cucumber/configuration.rb', line 121
def custom_profiles
profiles - [@options[:default_profile]]
end
|
#dry_run? ⇒ Boolean
61
62
63
|
# File 'lib/cucumber/configuration.rb', line 61
def dry_run?
@options[:dry_run]
end
|
#duration? ⇒ Boolean
105
106
107
|
# File 'lib/cucumber/configuration.rb', line 105
def duration?
@options[:duration]
end
|
#error_stream ⇒ Object
49
50
51
|
# File 'lib/cucumber/configuration.rb', line 49
def error_stream
@options[:error_stream]
end
|
#event_bus ⇒ Object
252
253
254
|
# File 'lib/cucumber/configuration.rb', line 252
def event_bus
@options[:event_bus]
end
|
#expand? ⇒ Boolean
97
98
99
|
# File 'lib/cucumber/configuration.rb', line 97
def expand?
@options[:expand]
end
|
#fail_fast? ⇒ Boolean
73
74
75
|
# File 'lib/cucumber/configuration.rb', line 73
def fail_fast?
@options[:fail_fast]
end
|
#feature_dirs ⇒ Object
141
142
143
144
145
|
# File 'lib/cucumber/configuration.rb', line 141
def feature_dirs
dirs = paths.map { |f| File.directory?(f) ? f : File.dirname(f) }.uniq
dirs.delete('.') unless paths.include?('.')
with_default_features_path(dirs)
end
|
#feature_files ⇒ Object
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
|
# File 'lib/cucumber/configuration.rb', line 163
def feature_files
potential_feature_files = with_default_features_path(paths).map do |path|
path = path.tr('\\', '/') path = path.chomp('/')
if File.directory?(path)
Dir["#{path}/**/*.feature"].sort
elsif Cli::RerunFile.can_read?(path)
Cli::RerunFile.new(path).features
else
path
end
end.flatten.uniq
remove_excluded_files_from(potential_feature_files)
potential_feature_files
end
|
#filters ⇒ Object
159
160
161
|
# File 'lib/cucumber/configuration.rb', line 159
def filters
@options[:filters]
end
|
129
130
131
|
# File 'lib/cucumber/configuration.rb', line 129
def formats
@options[:formats]
end
|
221
222
223
224
225
226
227
|
# File 'lib/cucumber/configuration.rb', line 221
def formatter_class(format)
if (builtin = Cli::Options::BUILTIN_FORMATS[format])
constantize(builtin[0])
else
constantize(format)
end
end
|
210
211
212
213
214
215
216
217
218
219
|
# File 'lib/cucumber/configuration.rb', line 210
def formatter_factories
formats.map do |format, formatter_options, path_or_io|
factory = formatter_class(format)
yield factory,
formatter_options,
path_or_io
rescue Exception => e
raise e, "#{e.message}\nError creating formatter: #{format}", e.backtrace
end
end
|
#guess? ⇒ Boolean
85
86
87
|
# File 'lib/cucumber/configuration.rb', line 85
def guess?
@options[:guess]
end
|
#id_generator ⇒ Object
256
257
258
|
# File 'lib/cucumber/configuration.rb', line 256
def id_generator
@id_generator ||= Cucumber::Messages::IdGenerator::UUID.new
end
|
#name_regexps ⇒ Object
155
156
157
|
# File 'lib/cucumber/configuration.rb', line 155
def name_regexps
@options[:name_regexps]
end
|
#notify(message, *args) ⇒ Object
33
34
35
|
# File 'lib/cucumber/configuration.rb', line 33
def notify(message, *args)
event_bus.send(message, *args)
end
|
#on_event {|Object| ... } ⇒ Object
Subscribe to an event.
See Events for the list of possible events.
30
|
# File 'lib/cucumber/configuration.rb', line 30
def_instance_delegator :event_bus, :on, :on_event
|
#out_stream ⇒ Object
45
46
47
|
# File 'lib/cucumber/configuration.rb', line 45
def out_stream
@options[:out_stream]
end
|
#paths ⇒ Object
125
126
127
|
# File 'lib/cucumber/configuration.rb', line 125
def paths
@options[:paths]
end
|
#profiles ⇒ Object
117
118
119
|
# File 'lib/cucumber/configuration.rb', line 117
def profiles
@options[:profiles] || []
end
|
#publish_enabled? ⇒ Boolean
65
66
67
|
# File 'lib/cucumber/configuration.rb', line 65
def publish_enabled?
@options[:publish_enabled]
end
|
#publish_quiet? ⇒ Boolean
69
70
71
|
# File 'lib/cucumber/configuration.rb', line 69
def publish_quiet?
@options[:publish_quiet]
end
|
#randomize? ⇒ Boolean
53
54
55
|
# File 'lib/cucumber/configuration.rb', line 53
def randomize?
@options[:order] == 'random'
end
|
#register_snippet_generator(generator) ⇒ Object
247
248
249
250
|
# File 'lib/cucumber/configuration.rb', line 247
def register_snippet_generator(generator)
snippet_generators << generator
self
end
|
#retry_attempts ⇒ Object
77
78
79
|
# File 'lib/cucumber/configuration.rb', line 77
def retry_attempts
@options[:retry]
end
|
#retry_total_tests ⇒ Object
81
82
83
|
# File 'lib/cucumber/configuration.rb', line 81
def retry_total_tests
@options[:retry_total]
end
|
#seed ⇒ Object
57
58
59
|
# File 'lib/cucumber/configuration.rb', line 57
def seed
@options[:seed]
end
|
113
114
115
|
# File 'lib/cucumber/configuration.rb', line 113
def skip_profile_information?
@options[:skip_profile_information]
end
|
#snippet_generators ⇒ Object
An array of procs that can generate snippets for undefined steps. These procs may be called if a formatter wants to display snippets to the user.
Each proc should take the following arguments:
- keyword
- step text
- multiline argument
- snippet type
243
244
245
|
# File 'lib/cucumber/configuration.rb', line 243
def snippet_generators
@options[:snippet_generators] ||= []
end
|
#snippet_type ⇒ Object
137
138
139
|
# File 'lib/cucumber/configuration.rb', line 137
def snippet_type
@options[:snippet_type]
end
|
#snippets? ⇒ Boolean
109
110
111
|
# File 'lib/cucumber/configuration.rb', line 109
def snippets?
@options[:snippets]
end
|
#source? ⇒ Boolean
101
102
103
|
# File 'lib/cucumber/configuration.rb', line 101
def source?
@options[:source]
end
|
#step_defs_to_load ⇒ Object
206
207
208
|
# File 'lib/cucumber/configuration.rb', line 206
def step_defs_to_load
all_files_to_load.reject { |f| f =~ /\/support\// }
end
|
#strict ⇒ Object
89
90
91
|
# File 'lib/cucumber/configuration.rb', line 89
def strict
@options[:strict]
end
|
#support_to_load ⇒ Object
182
183
184
185
186
187
188
189
190
191
|
# File 'lib/cucumber/configuration.rb', line 182
def support_to_load
support_files = all_files_to_load.select { |f| f =~ /\/support\// }
env_files = support_files.select { |f| f =~ /\/support\/env\..*/ }
other_files = support_files - env_files
env_files.reverse + other_files.reverse
end
|
#tag_expressions ⇒ Object
151
152
153
|
# File 'lib/cucumber/configuration.rb', line 151
def tag_expressions
@options[:tag_expressions]
end
|
#tag_limits ⇒ Object
147
148
149
|
# File 'lib/cucumber/configuration.rb', line 147
def tag_limits
@options[:tag_limits]
end
|
#to_hash ⇒ Object
229
230
231
|
# File 'lib/cucumber/configuration.rb', line 229
def to_hash
@options
end
|
#wip? ⇒ Boolean
93
94
95
|
# File 'lib/cucumber/configuration.rb', line 93
def wip?
@options[:wip]
end
|
#with_options(new_options) ⇒ Object
41
42
43
|
# File 'lib/cucumber/configuration.rb', line 41
def with_options(new_options)
self.class.new(@options.merge(new_options))
end
|