geordi 0.9.1 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/geordi/cuc.rb +53 -17
  2. data/lib/geordi/version.rb +1 -1
  3. metadata +4 -4
data/lib/geordi/cuc.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  require 'rubygems'
2
2
  require 'geordi/setup_firefox_for_selenium'
3
+ require 'ruby-debug'
3
4
 
4
5
  module Geordi
5
6
  class Cucumber
@@ -10,22 +11,36 @@ module Geordi
10
11
  puts "========================="
11
12
 
12
13
  consolidate_rerun_txt_files
13
- show_rerun_txt_file_content
14
+ show_features_to_run
14
15
 
15
16
  command = use_parallel_tests? ? parallel_execution_command : serial_execution_command
17
+
18
+ 2.times { puts }
19
+ puts "command to execute:"
20
+ puts command
21
+ puts "-----------------------------------------"
22
+
23
+ 2.times { puts }
16
24
  exec command
17
25
  end
18
26
 
27
+
28
+ attr_writer :argv
29
+ def argv
30
+ @argv ||= ARGV
31
+ end
32
+
19
33
  def serial_execution_command
20
34
  format_args = spinner_available? ? ['--format', 'CucumberSpinner::CuriousProgressBarFormatter'] : ['--format', 'progress']
21
- [use_firefox_for_selenium, "b", "cucumber", format_args, escape_shell_args(ARGV)].flatten.compact.join(" ")
35
+ [use_firefox_for_selenium, "b", "cucumber", format_args, escape_shell_args(argv)].flatten.compact.join(" ")
22
36
  end
23
37
 
24
38
 
25
39
  def parallel_execution_command
26
40
  puts "Using parallel_tests ...\n\n"
27
- parallel_tests_args = '-t features'
28
- cucumber_args = ARGV.empty? ? '' : "-o '#{escape_shell_args(ARGV).join(" ")}'"
41
+ self.argv = argv - command_line_features
42
+ parallel_tests_args = "-t features #{command_line_features}"
43
+ cucumber_args = argv.empty? ? '' : "-o '#{escape_shell_args(argv).join(" ")}'"
29
44
  [use_firefox_for_selenium, 'b', 'parallel_test', parallel_tests_args, cucumber_args].flatten.compact.join(" ")
30
45
  end
31
46
 
@@ -41,11 +56,40 @@ module Geordi
41
56
  end
42
57
  end
43
58
 
59
+ def show_features_to_run
60
+ unless features_to_run.empty?
61
+ passed_by = (features_to_run == rerun_txt_features) ? 'rerun.txt' : 'command line'
62
+ 2.times { puts }
63
+ puts "features to run (passed by #{passed_by}):"
64
+ puts "-----------------------------------------"
65
+ puts features_to_run.join("\n")
66
+ puts "-----------------------------------------"
67
+ end
68
+ end
44
69
 
45
- def rerun_txt_exists_and_has_content?
46
- File.exists?("rerun.txt") && !IO.read("rerun.txt").to_s.strip.empty?
70
+ def features_to_run
71
+ @features_to_run ||= begin
72
+ features = command_line_features
73
+ features = rerun_txt_features if features.empty?
74
+ features
75
+ end
47
76
  end
48
77
 
78
+ def command_line_features
79
+ @command_line_features ||= argv.select do |arg|
80
+ arg =~ /.*\.feature/i
81
+ end
82
+ end
83
+
84
+ def rerun_txt_features
85
+ @rerun_txt_features ||= begin
86
+ if File.exists?("rerun.txt")
87
+ IO.read("rerun.txt").to_s.strip.split(/\s+/)
88
+ else
89
+ []
90
+ end
91
+ end
92
+ end
49
93
 
50
94
  def consolidate_rerun_txt_files
51
95
  parallel_rerun_files = Dir.glob("parallel_rerun*.txt")
@@ -65,16 +109,8 @@ module Geordi
65
109
  end
66
110
  end
67
111
 
68
-
69
- def show_rerun_txt_file_content
70
- return unless rerun_txt_exists_and_has_content?
71
-
72
- 2.times { puts }
73
- puts "content of rerun.txt:"
74
- puts "-------------------------"
75
- puts File.read('rerun.txt')
76
- puts "-------------------------"
77
- 2.times { puts }
112
+ def features_can_run_with_parallel_tests?(features)
113
+ not features.any?{ |feature| feature.include? ":" }
78
114
  end
79
115
 
80
116
 
@@ -91,7 +127,7 @@ module Geordi
91
127
 
92
128
 
93
129
  def use_parallel_tests?
94
- parallel_tests_available? && !rerun_txt_exists_and_has_content?
130
+ parallel_tests_available? && features_can_run_with_parallel_tests?(features_to_run)
95
131
  end
96
132
 
97
133
  end
@@ -1,3 +1,3 @@
1
1
  module Geordi
2
- VERSION = '0.9.1'
2
+ VERSION = '0.9.2'
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geordi
3
3
  version: !ruby/object:Gem::Version
4
- hash: 57
4
+ hash: 63
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 9
9
- - 1
10
- version: 0.9.1
9
+ - 2
10
+ version: 0.9.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Henning Koch
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-02-20 00:00:00 +01:00
18
+ date: 2012-02-22 00:00:00 +01:00
19
19
  default_executable:
20
20
  dependencies: []
21
21