Skip to content

Commit 97da21d

Browse files
committed
Add ability to specify setup script
1 parent 23d3823 commit 97da21d

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

Gemfile.lock

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
parallel_cucumber (0.1.15)
4+
parallel_cucumber (0.1.16)
55
cucumber
66
parallel (~> 1.6)
77

lib/parallel_cucumber/cli.rb

+5
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ def parse_options!(argv)
3838
exit 1
3939
end
4040
end
41+
opts.on('-s', '--setup-script [SCRIPT]', 'Execute SCRIPT before each process') do |script|
42+
fail("File '#{script}' does not exist") unless File.exist?(script)
43+
fail("File '#{script}' is not executable") unless File.executable?(script)
44+
options[:setup_script] = File.expand_path(script)
45+
end
4146
opts.on('--thread-delay "[SECONDS]"', Integer, 'Delay before next thread starting') do |thread_delay|
4247
options[:thread_delay] = thread_delay
4348
end

lib/parallel_cucumber/runner.rb

+6-4
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ def run_tests(process_number, cucumber_args)
1414
private
1515

1616
def command_for_test(process_number, cucumber_args)
17-
cucumber_options = @options[:cucumber_options]
1817
thread_delay = @options[:thread_delay]
18+
cucumber_options = @options[:cucumber_options]
19+
setup_script = @options[:setup_script]
1920

20-
cmd = ['cucumber', cucumber_options, *cucumber_args].compact.join(' ')
21-
sleep = thread_delay > 0 ? "sleep #{thread_delay * process_number}; " : ''
21+
delay_cmd = thread_delay > 0 ? "sleep #{thread_delay * process_number}" : nil
22+
setup_cmd = setup_script.nil? ? nil : setup_script
23+
cucumber_cmd = ['cucumber', cucumber_options, *cucumber_args].compact.join(' ')
2224

23-
"#{sleep}#{cmd}"
25+
[delay_cmd, setup_cmd, cucumber_cmd].compact.join(' && ')
2426
end
2527

2628
def execute_command_for_process(process_number, cmd)

lib/parallel_cucumber/version.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
module ParallelCucumber
2-
VERSION = '0.1.15'
2+
VERSION = '0.1.16'
33
end # ParallelCucumber

0 commit comments

Comments
 (0)