cucumber_runner 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/bin/cucumber_runner CHANGED
@@ -1,34 +1,114 @@
1
1
  #!/usr/bin/env ruby
2
2
 
3
3
 
4
+ def display_help
5
+ puts "cucumber_runner:
4
6
 
7
+ runs cucumber scenarios by their name individully
8
+ -h, show this help page
9
+ --user_zeus, use zeus or not
5
10
 
11
+ example:
12
+ cucumber_runner ios_feature --use_zeus
6
13
 
7
- @@names = nil
14
+ "
15
+ end
8
16
 
9
17
 
18
+ # filter the args
19
+ def filter_args
10
20
 
11
- def get_cucumber_scenario_names
21
+ while arg= ARGV.shift
22
+
23
+
24
+ case arg
25
+ when "-h"
26
+ @ask_help=true
27
+ when "--use_zeus"
28
+ @use_zeus=true
29
+ else
30
+ @feature_dir = arg
31
+ end
32
+ end
33
+
34
+ #check help
35
+ if @ask_help
36
+ display_help
37
+ exit! 0
38
+ end
39
+
40
+ #if use zeus and zeus is not running, exit
41
+ if @use_zeus
12
42
 
13
- cmd = 'zeus cucumber' << " -d -f Cucumber::Formatter::ListScenarioName"
14
- %x{ #{cmd} }
43
+ ps_line =`ps aux |grep zeus`
44
+ #puts ps_line
45
+ if ps_line.lines.count<4
46
+ puts "you have to start zeus first"
47
+ exit! 0
48
+ end
49
+
50
+ end
51
+
52
+ end
15
53
 
16
54
 
55
+
56
+ # construct the cucumber command
57
+ def form_command
58
+
59
+ @zeus = @use_zeus.nil?? "": "zeus"
60
+ @feature_dir = @feature_dir.nil?? "": @feature_dir
61
+ @cmd = "#{@zeus} cucumber #{@feature_dir} " << " -d -f Cucumber::Formatter::ListScenarioName"
62
+
63
+ end
64
+
65
+
66
+ #get names dict from the tmp file
67
+ def get_cucumber_scenario_names
68
+
69
+ %x{ #{@cmd} }
17
70
  File.open('/tmp/cucumber_runner.tmp','r') do |f|
18
71
  @@names= Marshal.load(f.read())
19
72
  end
20
73
  print_names
21
74
  end
22
75
 
76
+ #print scenarios names
23
77
  def print_names
24
78
 
79
+ i=0
80
+ @@flatten_names ={}
25
81
  @@names.each {|key,value|
26
82
  puts key
27
- value.each {|tag| puts "\t\t"<< tag }
83
+ value.each_with_index {|tag,index|
84
+ key = "#{i}#{index}"
85
+ puts "\t\t#{key} #{tag}"
86
+ @@flatten_names[key]=tag
87
+ }
88
+ i+=1
28
89
  }
29
90
 
30
91
  end
31
92
 
93
+ #the heavy lifting,
94
+ def run_cmd(cmd)
95
+ #get continuous output
96
+ IO.popen cmd do |fd|
97
+ until fd.eof?
98
+ puts fd.readline
99
+ end
100
+ end
101
+
102
+ end
103
+
104
+
105
+
106
+
107
+
108
+
109
+
110
+ filter_args
111
+ form_command
32
112
  get_cucumber_scenario_names
33
113
 
34
114
 
@@ -39,6 +119,13 @@ while input = gets.chomp
39
119
 
40
120
  when 'S'
41
121
  exit 0
122
+ else
123
+
124
+ if @@flatten_names.has_key?input
125
+ cmd = "#{@zeus} cucumber #{@feature_dir} -n \"#{@@flatten_names[input]}\" "
126
+ puts cmd
127
+ run_cmd cmd
128
+ end
42
129
 
43
130
  end
44
131
 
@@ -1,3 +1,3 @@
1
1
  module CucumberRunner
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber_runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-07 00:00:00.000000000 Z
12
+ date: 2013-06-10 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: list cucumber scenarios names, and run them
15
15
  email:
@@ -50,7 +50,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
50
50
  version: '0'
51
51
  requirements: []
52
52
  rubyforge_project:
53
- rubygems_version: 1.8.21
53
+ rubygems_version: 1.8.24
54
54
  signing_key:
55
55
  specification_version: 3
56
56
  summary: list cucumber scenarios names, and run them