cuke-pack 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/cuke-pack.gemspec +0 -3
- data/lib/cuke-pack/profiles.rb +45 -0
- data/lib/cuke-pack/support/in_progress.rb +49 -0
- data/lib/cuke-pack/support/wait_for.rb +2 -4
- data/lib/cuke-pack/version.rb +1 -1
- data/skel/config/cucumber.yml +1 -11
- data/skel/features/support/cuke-pack.rb +3 -0
- metadata +16 -62
data/cuke-pack.gemspec
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
module CukePack
|
2
|
+
class Profiles
|
3
|
+
def self.std_opts
|
4
|
+
"-r features --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} -f Cucumber::StepWriter --out features/step_definitions --strict"
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.std_wip_opts
|
8
|
+
%{#{std_opts} --tags @wip}
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.write
|
12
|
+
in_progress_file = 'in_progress.txt'
|
13
|
+
rerun_file = 'rerun.txt'
|
14
|
+
|
15
|
+
in_progress = nil
|
16
|
+
if File.file?(in_progress_file)
|
17
|
+
in_progress = File.readlines(in_progress_file).first
|
18
|
+
|
19
|
+
if in_progress
|
20
|
+
in_progress = nil if in_progress.empty?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
if in_progress
|
25
|
+
File.open(rerun_file, 'wb') { |fh| fh.print in_progress }
|
26
|
+
|
27
|
+
wip_opts = %{RERUN_FILE=#{rerun_file} RUN_INPROGRESS=#{in_progress_file} #{std_opts} @#{rerun_file}}
|
28
|
+
else
|
29
|
+
wip_opts = %{#{std_wip_opts} features}
|
30
|
+
end
|
31
|
+
|
32
|
+
headless_driver = ENV['DRIVER'] || 'poltergeist'
|
33
|
+
|
34
|
+
headless_opts = %{DRIVER=#{headless_driver} INPROGRESS=#{in_progress_file} #{std_opts}}
|
35
|
+
|
36
|
+
<<-YML
|
37
|
+
default: #{headless_opts} features
|
38
|
+
wip: #{wip_opts}
|
39
|
+
precommit: #{headless_opts} --tags ~@no-precommit --tags ~@wip:0 features
|
40
|
+
cleanup: #{headless_opts} -f Cucumber::CleanupFormatter --out unused.txt features
|
41
|
+
YML
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
@@ -0,0 +1,49 @@
|
|
1
|
+
# after tests fail, re-run only failed scenarios, but one at a time so as not to oeverwhelm
|
2
|
+
|
3
|
+
in_progress = []
|
4
|
+
any_failed = false
|
5
|
+
|
6
|
+
if ENV['INPROGRESS']
|
7
|
+
File.unlink(ENV['INPROGRESS']) if File.file?(ENV['INPROGRESS'])
|
8
|
+
end
|
9
|
+
|
10
|
+
After do |s|
|
11
|
+
if s.failed?
|
12
|
+
if ENV['INPROGRESS']
|
13
|
+
in_progress << s.feature.file_colon_line(s.line)
|
14
|
+
end
|
15
|
+
|
16
|
+
if ENV['RUN_INPROGRESS']
|
17
|
+
any_failed = true
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
at_exit do
|
23
|
+
include Cucumber::Term::ANSIColor
|
24
|
+
|
25
|
+
if ENV['INPROGRESS'] and !in_progress.empty?
|
26
|
+
File.open(ENV['INPROGRESS'], 'wb') { |fh| fh.print in_progress.join("\n") }
|
27
|
+
|
28
|
+
puts red("*** Failing scenarios described in #{ENV['INPROGRESS']}. Run using the wip profile until they're fixed. ***")
|
29
|
+
end
|
30
|
+
|
31
|
+
if ENV['RUN_INPROGRESS']
|
32
|
+
if !any_failed
|
33
|
+
lines = File.readlines(ENV['RUN_INPROGRESS'])
|
34
|
+
passed = lines.shift
|
35
|
+
|
36
|
+
if lines.empty?
|
37
|
+
File.unlink(ENV['RUN_INPROGRESS'])
|
38
|
+
File.unlink(ENV['RERUN_FILE'])
|
39
|
+
|
40
|
+
puts green("*** You're done! All failed features have passed. ***")
|
41
|
+
else
|
42
|
+
File.open(ENV['RUN_INPROGRESS'], 'wb') { |fh| fh.print lines.join('') }
|
43
|
+
|
44
|
+
puts yellow("*** Still working - #{lines.length} feature#{lines.length == 1 ? '' : 's'} to go! ***")
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'sourcify'
|
2
|
-
|
3
1
|
MAX_TIMES = 20
|
4
2
|
WAIT_TIME = 0.1
|
5
3
|
|
@@ -39,11 +37,11 @@ class WaitingForElementFailure < StandardError
|
|
39
37
|
end
|
40
38
|
|
41
39
|
def message
|
42
|
-
@code
|
40
|
+
@code
|
43
41
|
end
|
44
42
|
|
45
43
|
def backtrace
|
46
|
-
[
|
44
|
+
[]
|
47
45
|
end
|
48
46
|
end
|
49
47
|
|
data/lib/cuke-pack/version.rb
CHANGED
data/skel/config/cucumber.yml
CHANGED
@@ -1,12 +1,2 @@
|
|
1
|
-
|
2
|
-
std_opts = "--color -r features --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'} -f Cucumber::StepWriter --out features/step_definitions --strict"
|
3
|
-
%>
|
4
|
-
default: <%= std_opts %> features
|
5
|
-
wip: <%= std_opts %> --tags @wip features
|
6
|
-
precommit: <%= std_opts %> --tags ~@wip:0 --tags ~@no-precommit features
|
7
|
-
|
8
|
-
# or enable FAILFAST to have your tests end immediately on failure
|
9
|
-
#precommit: FAILFAST=true <%= std_opts %> --tags ~@wip:0 features
|
10
|
-
|
11
|
-
cleanup: <%= std_opts %> -f Cucumber::CleanupFormatter --out unused.txt features
|
1
|
+
<%= require 'cuke-pack/profiles' ; CukePack::Profiles.write %>
|
12
2
|
|
@@ -7,6 +7,9 @@ require 'cuke-pack/support/step_writer'
|
|
7
7
|
# fail instantly if ENV['FAILFAST'] is set
|
8
8
|
require 'cuke-pack/support/failfast'
|
9
9
|
|
10
|
+
# use advanced in_progress mode
|
11
|
+
require 'cuke-pack/support/in_progress'
|
12
|
+
|
10
13
|
# set the level of flaying on the step definitions
|
11
14
|
# set it to false to skip flaying
|
12
15
|
flay_level = 32
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuke-pack
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,120 +9,72 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: cucumber
|
16
|
-
prerelease: false
|
17
16
|
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
20
20
|
- !ruby/object:Gem::Version
|
21
21
|
version: '0'
|
22
|
-
none: false
|
23
22
|
type: :runtime
|
23
|
+
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
25
26
|
requirements:
|
26
27
|
- - ! '>='
|
27
28
|
- !ruby/object:Gem::Version
|
28
29
|
version: '0'
|
29
|
-
none: false
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: cucumber-step_writer
|
32
|
-
prerelease: false
|
33
32
|
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
34
|
requirements:
|
35
35
|
- - ! '>='
|
36
36
|
- !ruby/object:Gem::Version
|
37
37
|
version: '0'
|
38
|
-
none: false
|
39
38
|
type: :runtime
|
39
|
+
prerelease: false
|
40
40
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
41
42
|
requirements:
|
42
43
|
- - ! '>='
|
43
44
|
- !ruby/object:Gem::Version
|
44
45
|
version: '0'
|
45
|
-
none: false
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
47
|
name: thor
|
48
|
-
prerelease: false
|
49
48
|
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
50
|
requirements:
|
51
51
|
- - ! '>='
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
|
-
none: false
|
55
54
|
type: :runtime
|
55
|
+
prerelease: false
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
57
58
|
requirements:
|
58
59
|
- - ! '>='
|
59
60
|
- !ruby/object:Gem::Version
|
60
61
|
version: '0'
|
61
|
-
none: false
|
62
62
|
- !ruby/object:Gem::Dependency
|
63
63
|
name: flay
|
64
|
-
prerelease: false
|
65
64
|
requirement: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - ! '>='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: '0'
|
70
65
|
none: false
|
71
|
-
type: :runtime
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
73
66
|
requirements:
|
74
67
|
- - ! '>='
|
75
68
|
- !ruby/object:Gem::Version
|
76
69
|
version: '0'
|
77
|
-
none: false
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: hirb
|
80
|
-
prerelease: false
|
81
|
-
requirement: !ruby/object:Gem::Requirement
|
82
|
-
requirements:
|
83
|
-
- - ! '>='
|
84
|
-
- !ruby/object:Gem::Version
|
85
|
-
version: '0'
|
86
|
-
none: false
|
87
70
|
type: :runtime
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
requirements:
|
90
|
-
- - ! '>='
|
91
|
-
- !ruby/object:Gem::Version
|
92
|
-
version: '0'
|
93
|
-
none: false
|
94
|
-
- !ruby/object:Gem::Dependency
|
95
|
-
name: sourcify
|
96
71
|
prerelease: false
|
97
|
-
requirement: !ruby/object:Gem::Requirement
|
98
|
-
requirements:
|
99
|
-
- - ! '>='
|
100
|
-
- !ruby/object:Gem::Version
|
101
|
-
version: '0'
|
102
|
-
none: false
|
103
|
-
type: :runtime
|
104
72
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
requirements:
|
106
|
-
- - ! '>='
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version: '0'
|
109
|
-
none: false
|
110
|
-
- !ruby/object:Gem::Dependency
|
111
|
-
name: sexp_processor
|
112
|
-
prerelease: false
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
requirements:
|
115
|
-
- - ! '>='
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '0'
|
118
73
|
none: false
|
119
|
-
type: :runtime
|
120
|
-
version_requirements: !ruby/object:Gem::Requirement
|
121
74
|
requirements:
|
122
75
|
- - ! '>='
|
123
76
|
- !ruby/object:Gem::Version
|
124
77
|
version: '0'
|
125
|
-
none: false
|
126
78
|
description: Stuff I use for Cucumber
|
127
79
|
email:
|
128
80
|
- john@coswellproductions.com
|
@@ -142,11 +94,13 @@ files:
|
|
142
94
|
- lib/cuke-pack.rb
|
143
95
|
- lib/cuke-pack/drivers.rb
|
144
96
|
- lib/cuke-pack/drivers/firefox.rb
|
97
|
+
- lib/cuke-pack/profiles.rb
|
145
98
|
- lib/cuke-pack/support/confirm_js.rb
|
146
99
|
- lib/cuke-pack/support/expect_fields.rb
|
147
100
|
- lib/cuke-pack/support/failfast.rb
|
148
101
|
- lib/cuke-pack/support/fakefs.rb
|
149
102
|
- lib/cuke-pack/support/flay.rb
|
103
|
+
- lib/cuke-pack/support/in_progress.rb
|
150
104
|
- lib/cuke-pack/support/mocha.rb
|
151
105
|
- lib/cuke-pack/support/pause.rb
|
152
106
|
- lib/cuke-pack/support/pending.rb
|
@@ -169,20 +123,20 @@ rdoc_options: []
|
|
169
123
|
require_paths:
|
170
124
|
- lib
|
171
125
|
required_ruby_version: !ruby/object:Gem::Requirement
|
126
|
+
none: false
|
172
127
|
requirements:
|
173
128
|
- - ! '>='
|
174
129
|
- !ruby/object:Gem::Version
|
175
130
|
version: '0'
|
176
|
-
none: false
|
177
131
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
|
+
none: false
|
178
133
|
requirements:
|
179
134
|
- - ! '>='
|
180
135
|
- !ruby/object:Gem::Version
|
181
136
|
version: '0'
|
182
|
-
none: false
|
183
137
|
requirements: []
|
184
138
|
rubyforge_project:
|
185
|
-
rubygems_version: 1.8.
|
139
|
+
rubygems_version: 1.8.25
|
186
140
|
signing_key:
|
187
141
|
specification_version: 3
|
188
142
|
summary: Stuff I use for Cucumber
|