cukesparse 2.0.5 → 2.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 5c90d215f8fb5a25a8ac4d3118c9f5fa051cb82a
4
- data.tar.gz: 3859761458f24dac7158f86e8c1dfdfee201227a
3
+ metadata.gz: c80cf3026666d2482f06451e9e0524afe3deafbe
4
+ data.tar.gz: 57b144f542d1d48a8b8e0cab9622c5419356300d
5
5
  SHA512:
6
- metadata.gz: dc10ea17d2ee538d8471837fad7aa77842f9733abcd8de6241328b557236b43fe85d740ac146730618d7699670ff67b6f48bc2ceca7d93ec7e31f167d90dd927
7
- data.tar.gz: 34781891aa0413c0b4148c2cb9d6289e6d39413a9399f658443823eed6be423d603c729fc92cde7014cebb01a5f37ba08ed6fe4942d596eca81976e94d6c76ae
6
+ metadata.gz: c23ce187c948f68a99fd36c3222b7767e289de7f3062ef1900f9a5d00838a0714f1c108497ef5f3502f3bb47ff703b20be96ccab131ee3f56cca2611c4524eff
7
+ data.tar.gz: adcf9a9adfe34e55e13cdfd54a35c960fc87ffcb300a4279f63732a4a893bec937157172cd6781e35c963c05f465a5a4884504e0852338b9833ab22066808740
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'cukesparse'
3
- require 'colored'
4
3
 
5
4
  begin
5
+ Cukesparse.reset!
6
6
  Cukesparse.execute
7
7
  rescue Interrupt
8
8
  exit!
@@ -3,7 +3,7 @@ require File.dirname(__FILE__) + "/lib/cukesparse/version"
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'cukesparse'
5
5
  s.version = Cukesparse::VERSION
6
- s.date = '2013-08-27'
6
+ s.date = '2013-08-30'
7
7
  s.summary = 'Cukesparse - cucumber command line parser'
8
8
  s.description = 'A simple command line parser to pass arguments into Cucumber'
9
9
  s.author = 'Jonathan Chrisp'
@@ -2,16 +2,17 @@ require 'clik'
2
2
  require 'colored'
3
3
  require 'yaml'
4
4
 
5
+
5
6
  module Cukesparse
6
7
  class << self
7
8
  attr_accessor :config_file, :config, :task, :parameters, :command
8
9
 
9
- # configure cukeparse
10
- def configure
11
- yield self
10
+ # Returns current config file
11
+ def config_file
12
+ @config_file ||= 'config/tasks.yml'
12
13
  end
13
14
 
14
- # returns ARGV
15
+ # Returns current argv
15
16
  def argv
16
17
  ARGV
17
18
  end
@@ -21,42 +22,29 @@ module Cukesparse
21
22
  # @param [Symbol] key the key to store in options
22
23
  # @param [String] val the arguments passed in for key
23
24
  def add_multiple key, val
24
- case val
25
- when Array
26
- val.each do |v|
27
- (@parameters[key] ||= []).push '--' + key.to_s + ' ' + v.to_s
28
- end
29
- else
30
- (@parameters[key] ||= []).push '--' + key.to_s + ' ' + val.to_s
25
+ return (@parameters[key] ||= []).push '--' + key + ' ' + val unless val.is_a? Array
26
+
27
+ val.each do |v|
28
+ (@parameters[key] ||= []).push '--' + key + ' ' + v
31
29
  end
32
30
  end
33
31
 
34
32
  # Executes cukesparse by checking arguments passed
35
33
  def execute
36
- # Check if no arguments
37
- if argv.empty?
38
- puts 'Cukesparse - a simple command line parser to pass arguments into Cucumber!'.yellow
39
- return
40
- end
34
+ load_config
35
+ return puts 'Cukesparse - a simple command line parser to pass arguments into Cucumber!'.yellow if argv.empty?
36
+ return puts "You have the following tasks within your config file: #{@config.keys.join(', ')}".yellow if argv.dup.shift == 'tasks'
41
37
 
42
- # Determine argument passed
43
- case argv.dup.shift
44
- when 'tasks'
45
- load_config
46
- puts "You have the following tasks within your config file: #{@config.keys.join(', ')}".yellow
47
- return
48
- else
49
- load_config.parse_argv.build_command
50
- end
51
- end
52
-
53
- # Builds the command line string
54
- def build_command
38
+ parse_argv
55
39
  check_for_task
56
40
  check_for_parameters
57
41
  set_cucumber_defaults
58
42
  set_runtime_defaults
43
+ build_command
44
+ end
59
45
 
46
+ # Builds the command line string
47
+ def build_command
60
48
  unless @task.empty? && @parameters.empty?
61
49
  @command.push 'bundle exec cucumber'
62
50
  @command.push '--require features/'
@@ -65,31 +53,22 @@ module Cukesparse
65
53
  @command.push task['defaults'].join(' ') if task.has_key? 'defaults'
66
54
  end
67
55
 
68
- if @parameters.has_key? :debug
69
- debug
70
- else
71
- system @command.join(' ')
72
- exit $?.exitstatus
73
- end
56
+ return debug if @parameters.has_key? 'debug'
57
+ system @command.join(' ')
58
+ exit $?.exitstatus
74
59
  end
75
60
 
76
61
  # Checks for task in arguments
77
62
  def check_for_task
78
63
  task = argv & @config.keys
79
- if task.empty?
80
- abort 'ERROR: No task was passed to cukesparse!'.red.underline
81
- elsif task.length > 1
82
- puts 'WARN: Multiple tasks have been passed!'.yellow
83
- else
84
- @task = @config[task[0]]
85
- end
64
+ return abort 'ERROR: No task was passed to cukesparse!'.red.underline if task.empty?
65
+ return puts 'WARN: Multiple tasks have been passed!'.yellow if task.length > 1
66
+ return @task = @config[task[0]]
86
67
  end
87
68
 
88
69
  # Checks parameters and returns boolean
89
70
  def check_for_parameters
90
- unless @parameters.any?
91
- puts 'WARN: No parameters passed to cukesparse'.yellow
92
- end
71
+ return puts 'WARN: No parameters passed to cukesparse'.yellow unless @parameters.any?
93
72
  end
94
73
 
95
74
  # Outputs the debug information
@@ -106,108 +85,97 @@ module Cukesparse
106
85
 
107
86
  # Loads the config file
108
87
  def load_config
109
- begin
110
- @config = YAML.load_file @config_file
111
- rescue Psych::SyntaxError
112
- abort 'Your tasks file did not parse as expected!'.red.underline
113
- rescue Errno::ENOENT
114
- abort 'Your tasks file is missing!'.red.underline
115
- end
116
- self
88
+ @config = YAML.load_file config_file
89
+ rescue Psych::SyntaxError
90
+ abort 'Your tasks file did not parse as expected!'.red.underline
91
+ rescue Errno::ENOENT
92
+ abort 'Your tasks file is missing!'.red.underline
117
93
  end
118
94
 
119
95
  # Parses the options passed via command line
120
96
  def parse_argv
121
- begin
122
- cli argv,
123
- # Cucumber options
124
- '-t' => lambda{ |t| add_multiple(:tags, t) },
125
- '-n --name' => lambda{ |n| add_multiple(:name, n) },
126
- '-f --format' => ->(f){ @parameters[:format] = "--format #{f}" },
127
- '-d --dry-run' => ->{ @parameters[:dry_run] = "--dry-run" },
128
- '-v --verbose' => ->{ @parameters[:verbose] = "--verbose" },
129
- '-s --strict' => ->{ @parameters[:strict] = "--strict" },
130
- '-g --guess' => ->{ @parameters[:guess] = "--guess" },
131
- '-x --expand' => ->{ @parameters[:expand] = "--expand" },
132
-
133
- # All options below have been added for custom project but can be used for example
134
- # Global options
135
- '-e --environment' => ->(e){ @parameters[:environment] = "ENVIRONMENT=#{e}" },
136
- '-l --loglevel' => ->(l){ @parameters[:log_level] = "LOG_LEVEL=#{l}" },
137
- '-c --controller' => ->(c){ @parameters[:controller] = "CONTROLLER=#{c}" },
138
- '-h --headless' => ->{ @parameters[:headless] = "HEADLESS=TRUE" },
139
-
140
- # Database options
141
- '--cleanup' => ->{ @parameters[:cleanup] = "CLEANUP=TRUE" },
142
- '--no-cleanup' => ->{ @parameters[:cleanup] = "CLEANUP=FALSE" },
143
- '--database' => ->{ @parameters[:database] = "DATABASE=TRUE" },
144
- '--jenkins' => ->{ @parameters[:jenkins] = "JENKINS=TRUE" },
145
-
146
- # Retry options
147
- '--retries' => ->(r){ @parameters[:retries] = "RETRIES=#{r}" },
148
- '--timeout' => ->(t){ @parameters[:timeout] = "TIMEOUT=#{t}" },
149
-
150
- # Driver Options
151
- '--screen' => ->(s){ split_parameters(s, :screen) },
152
- '--position' => ->(p){ split_parameters(p, :position) },
153
- '--screenwidth' => ->(w){ @parameters[:screen_width] = "SCREENWIDTH=#{w}" },
154
- '--screenheight' => ->(h){ @parameters[:screen_height] = "SCREENHEIGHT=#{h}" },
155
- '--xposition' => ->(x){ @parameters[:xposition] = "XPOSITION=#{x}" },
156
- '--yposition' => ->(y){ @parameters[:yposition] = "YPOSITION=#{y}" },
157
- '-H --highlight' => ->{ @parameters[:highlight] = "HIGHLIGHT=TRUE" },
158
-
159
- # Debug
160
- '--debug' => ->{ @parameters[:debug] = "DEBUG=TRUE" }
161
- rescue
162
- abort 'Error processing passed CLI arguments!'.red.underline
163
- else
164
- self
165
- end
97
+ cli argv,
98
+ # Cucumber options
99
+ '-t' => lambda{ |t| add_multiple('tags', t) },
100
+ '-n --name' => lambda{ |n| add_multiple('name', n) },
101
+ '-f --format' => ->(f){ @parameters['format'] = "--format #{f}" },
102
+ '-d --dry-run' => ->{ @parameters['dry_run'] = "--dry-run" },
103
+ '-v --verbose' => ->{ @parameters['verbose'] = "--verbose" },
104
+ '-s --strict' => ->{ @parameters['strict'] = "--strict" },
105
+ '-g --guess' => ->{ @parameters['guess'] = "--guess" },
106
+ '-x --expand' => ->{ @parameters['expand'] = "--expand" },
107
+
108
+ # All options below have been added for custom project but can be used for example
109
+ # Global options
110
+ '-e --environment' => ->(e){ @parameters['environment'] = "ENVIRONMENT=#{e}" },
111
+ '-l --loglevel' => ->(l){ @parameters['log_level'] = "LOG_LEVEL=#{l}" },
112
+ '-c --controller' => ->(c){ @parameters['controller'] = "CONTROLLER=#{c}" },
113
+ '-h --headless' => ->{ @parameters['headless'] = "HEADLESS=TRUE" },
114
+
115
+ # Database options
116
+ '--cleanup' => ->{ @parameters['cleanup'] = "CLEANUP=TRUE" },
117
+ '--no-cleanup' => ->{ @parameters['cleanup'] = "CLEANUP=FALSE" },
118
+ '--database' => ->{ @parameters['database'] = "DATABASE=TRUE" },
119
+ '--jenkins' => ->{ @parameters['jenkins'] = "JENKINS=TRUE" },
120
+
121
+ # Retry options
122
+ '--retries' => ->(r){ @parameters['retries'] = "RETRIES=#{r}" },
123
+ '--timeout' => ->(t){ @parameters['timeout'] = "TIMEOUT=#{t}" },
124
+
125
+ # Driver Options
126
+ '--screen' => ->(s){ split_parameters(s, 'screen') },
127
+ '--position' => ->(p){ split_parameters(p, 'position') },
128
+ '--screenwidth' => ->(w){ @parameters['screen_width'] = "SCREENWIDTH=#{w}" },
129
+ '--screenheight' => ->(h){ @parameters['screen_height'] = "SCREENHEIGHT=#{h}" },
130
+ '--xposition' => ->(x){ @parameters['xposition'] = "XPOSITION=#{x}" },
131
+ '--yposition' => ->(y){ @parameters['yposition'] = "YPOSITION=#{y}" },
132
+ '-H --highlight' => ->{ @parameters['highlight'] = "HIGHLIGHT=TRUE" },
133
+
134
+ # Debug
135
+ '--debug' => ->{ @parameters['debug'] = "DEBUG=TRUE" }
136
+ rescue
137
+ abort 'Error processing passed CLI arguments!'.red.underline
166
138
  end
167
139
 
168
140
  # Updates parameters based on config runtime defaults
169
141
  def set_runtime_defaults
170
- if @task.has_key? 'runtime_defaults'
171
- @task['runtime_defaults'].each do |key, val|
172
- case key.to_sym
173
- when :screen, :position
174
- split_parameters(val, key.to_sym)
175
- else
176
- unless @parameters.has_key? key.to_sym
177
- @parameters[key.to_sym] = key.upcase + '=' + val.to_s
178
- end
142
+ return puts 'WARN: The task has no runtime defaults!'.yellow unless @task.has_key? 'runtime_defaults'
143
+
144
+ @task['runtime_defaults'].each do |key, val|
145
+ case key
146
+ when 'screen', 'position'
147
+ split_parameters(val, key)
148
+ else
149
+ unless @parameters.has_key? key
150
+ @parameters[key] = key.upcase + '=' + val.to_s
179
151
  end
180
152
  end
181
- else
182
- puts 'WARN: The task has no runtime defaults!'.yellow
183
153
  end
184
154
  end
185
155
 
186
156
  # Updates parameters based on config cucumber defaults
187
157
  def set_cucumber_defaults
188
- if @task.has_key? 'cucumber_defaults'
189
- @task['cucumber_defaults'].each do |key, val|
190
- case key.to_sym
191
- when :tags, :name
192
- add_multiple key.to_sym, val
193
- when :format
194
- unless @parameters.has_key? key.to_sym
195
- @parameters[key.to_sym] = '--' + key.downcase + ' ' + val.to_s
196
- end
197
- when :strict, :verbose, :guess, :expand
198
- unless @parameters.has_key? key.to_sym && @parameters[key.to_sym] == true
199
- @parameters[key.to_sym] = '--' + key.downcase
200
- end
201
- when :dry_run
202
- unless @parameters.has_key? key.to_sym && @parameters[key.to_sym] == true
203
- @parameters[key.to_sym] = '--dry-run'
204
- end
205
- else
206
- puts 'WARN: The cucumber default ' + key.to_s + ' isn\'t a known option!'.yellow
158
+ return puts 'WARN: The task has no cucumber defaults!'.yellow unless @task.has_key? 'cucumber_defaults'
159
+
160
+ @task['cucumber_defaults'].each do |key, val|
161
+ case key
162
+ when 'tags', 'name'
163
+ add_multiple key, val
164
+ when 'format'
165
+ unless @parameters.has_key? key
166
+ @parameters[key] = '--' + key.downcase + ' ' + val.to_s
167
+ end
168
+ when 'strict', 'verbose', 'guess', 'expand'
169
+ unless @parameters.has_key? key && @parameters[key] == true
170
+ @parameters[key] = '--' + key.downcase
171
+ end
172
+ when 'dry_run'
173
+ unless @parameters.has_key? key && @parameters[key] == true
174
+ @parameters[key] = '--dry-run'
207
175
  end
176
+ else
177
+ puts "WARN: The cucumber default #{key} isn't a known option!".yellow
208
178
  end
209
- else
210
- puts 'WARN: The task has no cucumber defaults!'.yellow
211
179
  end
212
180
  end
213
181
 
@@ -224,29 +192,21 @@ module Cukesparse
224
192
  end
225
193
 
226
194
  case sym
227
- when :screen
228
- @parameters[:screenwidth] = "SCREENWIDTH=#{params[0]}"
229
- @parameters[:screenheight] = "SCREENHEIGHT=#{params[1]}"
230
- when :position
231
- @parameters[:xposition] = "XPOSITION=#{params[0]}"
232
- @parameters[:yposition] = "YPOSITION=#{params[1]}"
195
+ when 'screen'
196
+ @parameters['screenwidth'] = "SCREENWIDTH=#{params[0]}"
197
+ @parameters['screenheight'] = "SCREENHEIGHT=#{params[1]}"
198
+ when 'position'
199
+ @parameters['xposition'] = "XPOSITION=#{params[0]}"
200
+ @parameters['yposition'] = "YPOSITION=#{params[1]}"
233
201
  end
234
202
  end
235
203
 
204
+ # Resets cukesparse
236
205
  def reset!
237
- @config = nil
206
+ @config = {}
238
207
  @parameters = {}
239
208
  @task = {}
240
209
  @command = []
241
210
  end
242
211
  end
243
-
244
- # defaults
245
- self.parameters = {}
246
- self.task = {}
247
- self.command = []
248
- end
249
-
250
- Cukesparse.configure do |config|
251
- config.config_file = 'config/tasks.yml'
252
212
  end
@@ -1,3 +1,3 @@
1
1
  module Cukesparse
2
- VERSION = "2.0.5"
2
+ VERSION = "2.1.1"
3
3
  end
@@ -8,17 +8,17 @@ describe '.add_multiple' do
8
8
 
9
9
  context "when run with a single value" do
10
10
  it "will add a key to parameters with the correct array value" do
11
- Cukesparse.add_multiple(:tags, 'abc')
12
- Cukesparse.parameters.should have_key(:tags)
13
- Cukesparse.parameters[:tags].should eql ['--tags abc']
11
+ Cukesparse.add_multiple('tags', 'abc')
12
+ Cukesparse.parameters.should have_key('tags')
13
+ Cukesparse.parameters['tags'].should eql ['--tags abc']
14
14
  end
15
15
  end
16
16
 
17
17
  context "when run with multiple values" do
18
18
  it "will add a key to parameters with the correct array values" do
19
- Cukesparse.add_multiple(:tags, ['abc', 'def', 'hij'])
20
- Cukesparse.parameters.should have_key(:tags)
21
- Cukesparse.parameters[:tags].should eql ['--tags abc', '--tags def', '--tags hij']
19
+ Cukesparse.add_multiple('tags', ['abc', 'def', 'hij'])
20
+ Cukesparse.parameters.should have_key('tags')
21
+ Cukesparse.parameters['tags'].should eql ['--tags abc', '--tags def', '--tags hij']
22
22
  end
23
23
  end
24
24
  end
@@ -0,0 +1,14 @@
1
+ require 'helper'
2
+
3
+ describe ".argv" do
4
+ before :each do
5
+ ARGV.clear
6
+ Cukesparse.reset!
7
+ end
8
+
9
+ context "when run" do
10
+ it "returns true for empty opts parameter" do
11
+ Cukesparse.argv.should be_empty
12
+ end
13
+ end
14
+ end
@@ -8,7 +8,6 @@ describe '.check_for_parameters' do
8
8
 
9
9
  context "when run with no paramaters defined" do
10
10
  it "will return an warning if no parameters are provided" do
11
- Cukesparse.instance_variable_set(:@parameters, {})
12
11
  Cukesparse.should_receive("puts").with("\e[0;33;49mWARN: No parameters passed to cukesparse\e[0m")
13
12
  Cukesparse.check_for_parameters
14
13
  end
@@ -9,7 +9,6 @@ describe '.check_for_task' do
9
9
  context "when run with no task defined" do
10
10
  it "will return an error if no task is provided" do
11
11
  ARGV.push('incorrect_task')
12
- Cukesparse.config = {}
13
12
  Cukesparse.should_receive("abort").with("\e[4;31;49mERROR: No task was passed to cukesparse!\e[0m")
14
13
  Cukesparse.check_for_task
15
14
  end
@@ -18,7 +17,7 @@ describe '.check_for_task' do
18
17
  context "when run with multiple tasks defined" do
19
18
  it "will return an error if multiple tasks are provided" do
20
19
  ARGV.push('test_task', 'test_task1')
21
- Cukesparse.configure {|c| c.config_file = File.join(fixture_path, 'valid_tasks.yml')}
20
+ Cukesparse.config_file = File.join(fixture_path, 'valid_tasks.yml')
22
21
  Cukesparse.load_config
23
22
  Cukesparse.should_receive("puts").with("\e[0;33;49mWARN: Multiple tasks have been passed!\e[0m")
24
23
  Cukesparse.check_for_task
@@ -28,7 +27,7 @@ describe '.check_for_task' do
28
27
  context "when task is defined the @task instance variable will return a hash" do
29
28
  it "will set the task in @task" do
30
29
  ARGV.push('test_task')
31
- Cukesparse.configure {|c| c.config_file = File.join(fixture_path, 'valid_tasks.yml')}
30
+ Cukesparse.config_file = File.join(fixture_path, 'valid_tasks.yml')
32
31
  Cukesparse.load_config
33
32
  Cukesparse.check_for_task
34
33
  Cukesparse.task.should be_an_instance_of Hash
@@ -0,0 +1,25 @@
1
+ require 'helper'
2
+
3
+ describe '.debug' do
4
+ before :each do
5
+ ARGV.clear
6
+ Cukesparse.reset!
7
+ end
8
+
9
+ context "when run with task and --debug parameter" do
10
+ it "will return the correct output" do
11
+ ARGV.push('test_task1', '--debug')
12
+ Cukesparse.config_file = File.join(fixture_path, 'valid_tasks.yml')
13
+ Cukesparse.should_receive("puts").with("\e[0;33;49mDEBUG: Outputting ARGV passed\e[0m")
14
+ Cukesparse.should_receive("puts").with("[\"test_task1\", \"--debug\"]")
15
+ Cukesparse.should_receive("puts").with("\e[0;33;49mDEBUG: Outputting parsed config file\e[0m")
16
+ Cukesparse.should_receive("puts").with("{\"test_task\"=>{\"feature_order\"=>[\"features/featureOne\", \"features/featureTwo\", \"features/featureThree\"], \"cucumber_defaults\"=>{\"format\"=>\"pretty\", \"name\"=>[\"feature1\", \"feature2\"], \"tags\"=>[\"tags1\", \"tags2\"], \"strict\"=>true, \"verbose\"=>true, \"dry_run\"=>true, \"guess\"=>true, \"expand\"=>true}, \"runtime_defaults\"=>{\"environment\"=>\"release\", \"log_level\"=>\"debug\", \"cleanup\"=>true, \"database\"=>true, \"jenkins\"=>true, \"retries\"=>5, \"timeout\"=>60, \"screen\"=>\"1280/1024\", \"screenwidth\"=>1280, \"screenheight\"=>1024, \"position\"=>\"0/0\", \"xposition\"=>0, \"yposition\"=>0, \"highlight\"=>true}, \"defaults\"=>[\"--format html\", \"--out coverage/report.html\", \"-P -s\"]}, \"test_task1\"=>{\"feature_order\"=>[\"features/featureOne\", \"features/featureTwo\", \"features/featureThree\"], \"cucumber_defaults\"=>{\"format\"=>\"pretty\"}, \"runtime_defaults\"=>{\"environment\"=>\"release\", \"log_level\"=>\"debug\"}, \"defaults\"=>[\"--format html\", \"--out coverage/report.html\", \"-P -s\"]}, \"cucumber_default_unknown\"=>{\"feature_order\"=>[\"features/featureOne\", \"features/featureTwo\", \"features/featureThree\"], \"cucumber_defaults\"=>{\"testing\"=>\"pretty\"}, \"runtime_defaults\"=>{\"environment\"=>\"release\", \"log_level\"=>\"debug\"}, \"defaults\"=>[\"--format html\", \"--out coverage/report.html\", \"-P -s\"]}, \"no_defaults\"=>{\"feature_order\"=>[\"features/featureOne\", \"features/featureTwo\", \"features/featureThree\"]}}")
17
+ Cukesparse.should_receive("puts").with("\e[0;33;49mDEBUG: Outputting parameters created\e[0m")
18
+ Cukesparse.should_receive("puts").with("{\"debug\"=>\"DEBUG=TRUE\", \"format\"=>\"--format pretty\", \"environment\"=>\"ENVIRONMENT=release\", \"log_level\"=>\"LOG_LEVEL=debug\"}")
19
+ Cukesparse.should_receive("puts").with("\e[0;33;49mDEBUG: Outputting command created\e[0m")
20
+ Cukesparse.should_receive("puts").with("bundle exec cucumber --require features/ features/featureOne features/featureTwo features/featureThree DEBUG=TRUE --format pretty ENVIRONMENT=release LOG_LEVEL=debug --format html --out coverage/report.html -P -s")
21
+ Cukesparse.execute
22
+ end
23
+
24
+ end
25
+ end