turnip_formatter 0.6.0.pre.beta.2 → 0.6.0.pre.beta.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -1
- data/Rakefile +3 -2
- data/lib/rspec/core/formatters/turnip_formatter.rb +8 -9
- data/lib/turnip_formatter/ext/turnip/rspec.rb +6 -5
- data/lib/turnip_formatter/{template → renderer/html/assets}/turnip_formatter.css +1 -1
- data/lib/turnip_formatter/{template → renderer/html/assets}/turnip_formatter.js +0 -0
- data/lib/turnip_formatter/{template → renderer/html/assets}/turnip_formatter.scss +1 -1
- data/lib/turnip_formatter/renderer/html/base.rb +4 -4
- data/lib/turnip_formatter/renderer/html/index.rb +83 -0
- data/lib/turnip_formatter/renderer/html/runtime_error.rb +20 -0
- data/lib/turnip_formatter/renderer/html/scenario.rb +20 -0
- data/lib/turnip_formatter/renderer/html/statistics_feature.rb +45 -0
- data/lib/turnip_formatter/renderer/html/statistics_speed.rb +39 -0
- data/lib/turnip_formatter/renderer/html/statistics_tag.rb +53 -0
- data/lib/turnip_formatter/renderer/html/views/index.html.erb +94 -0
- data/lib/turnip_formatter/renderer/html/views/runtime_error.html.erb +20 -0
- data/lib/turnip_formatter/renderer/html/views/scenario.html.erb +23 -0
- data/lib/turnip_formatter/renderer/html/views/statistics_feature.html.erb +24 -0
- data/lib/turnip_formatter/renderer/html/views/statistics_speed.html.erb +24 -0
- data/lib/turnip_formatter/renderer/html/views/statistics_tag.html.erb +24 -0
- data/lib/turnip_formatter/renderer/html.rb +84 -0
- data/lib/turnip_formatter/resource/scenario/base.rb +80 -0
- data/lib/turnip_formatter/resource/scenario/failure.rb +50 -0
- data/lib/turnip_formatter/resource/scenario/pass.rb +10 -0
- data/lib/turnip_formatter/resource/scenario/pending.rb +42 -0
- data/lib/turnip_formatter/version.rb +1 -1
- data/lib/turnip_formatter.rb +8 -4
- data/test/helper.rb +64 -12
- data/test/turnip_formatter/renderer/html/test_index.rb +102 -0
- data/test/turnip_formatter/renderer/html/test_runtime_error.rb +40 -0
- data/test/turnip_formatter/renderer/html/test_statistics_feature.rb +102 -0
- data/test/turnip_formatter/renderer/html/test_statistics_speed.rb +77 -0
- data/test/turnip_formatter/renderer/html/test_statistics_tag.rb +112 -0
- data/test/turnip_formatter/renderer/html/test_step.rb +27 -0
- data/test/turnip_formatter/renderer/test_html.rb +75 -0
- data/test/turnip_formatter/resource/scenario/test_failure.rb +39 -0
- data/test/turnip_formatter/resource/scenario/test_pass.rb +65 -0
- data/test/turnip_formatter/resource/scenario/test_pending.rb +39 -0
- data/turnip_formatter.gemspec +1 -1
- metadata +45 -57
- data/lib/turnip_formatter/printer/index.rb +0 -26
- data/lib/turnip_formatter/printer/runtime_error.rb +0 -36
- data/lib/turnip_formatter/printer/scenario.rb +0 -22
- data/lib/turnip_formatter/printer/tab_feature_statistics.rb +0 -46
- data/lib/turnip_formatter/printer/tab_speed_statistics.rb +0 -35
- data/lib/turnip_formatter/printer/tab_tag_statistics.rb +0 -76
- data/lib/turnip_formatter/printer.rb +0 -29
- data/lib/turnip_formatter/scenario/base.rb +0 -99
- data/lib/turnip_formatter/scenario/failure.rb +0 -44
- data/lib/turnip_formatter/scenario/pass.rb +0 -8
- data/lib/turnip_formatter/scenario/pending.rb +0 -40
- data/lib/turnip_formatter/step.rb +0 -23
- data/lib/turnip_formatter/template/exception.slim +0 -8
- data/lib/turnip_formatter/template/index.slim +0 -86
- data/lib/turnip_formatter/template/runtime_exception.slim +0 -13
- data/lib/turnip_formatter/template/scenario.slim +0 -15
- data/lib/turnip_formatter/template/tab_feature_statistics.slim +0 -18
- data/lib/turnip_formatter/template/tab_speed_statistics.slim +0 -16
- data/lib/turnip_formatter/template/tab_tag_statistics.slim +0 -18
- data/spec/turnip_formatter/printer/index_spec.rb +0 -38
- data/spec/turnip_formatter/printer/scenario_spec.rb +0 -42
- data/spec/turnip_formatter/printer/tab_feature_statistics_spec.rb +0 -80
- data/spec/turnip_formatter/printer/tab_speed_statistics_spec.rb +0 -48
- data/spec/turnip_formatter/printer/tab_tag_statistics_spec.rb +0 -103
- data/spec/turnip_formatter/scenario/base_spec.rb +0 -67
- data/spec/turnip_formatter/scenario/failure_spec.rb +0 -55
- data/spec/turnip_formatter/scenario/pending_spec.rb +0 -51
- data/spec/turnip_formatter/template_spec.rb +0 -119
- data/test/sample.feature +0 -16
@@ -34,5 +34,32 @@ module TurnipFormatter::Renderer::Html
|
|
34
34
|
assert_not_nil(document.at_css('div.step-body'))
|
35
35
|
end
|
36
36
|
end
|
37
|
+
|
38
|
+
private
|
39
|
+
|
40
|
+
def sample_step
|
41
|
+
sample_feature.scenarios[0].steps[0]
|
42
|
+
end
|
43
|
+
|
44
|
+
def sample_step_with_docstring
|
45
|
+
sample_feature.scenarios[0].steps[1]
|
46
|
+
end
|
47
|
+
|
48
|
+
def sample_feature
|
49
|
+
feature_build(feature_text)
|
50
|
+
end
|
51
|
+
|
52
|
+
def feature_text
|
53
|
+
<<-EOS
|
54
|
+
Feature: Feature
|
55
|
+
|
56
|
+
Scenario: Scenario
|
57
|
+
When step
|
58
|
+
When step with DocString
|
59
|
+
"""
|
60
|
+
DocString
|
61
|
+
"""
|
62
|
+
EOS
|
63
|
+
end
|
37
64
|
end
|
38
65
|
end
|
@@ -0,0 +1,75 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'tempfile'
|
3
|
+
require 'turnip_formatter/renderer/html'
|
4
|
+
|
5
|
+
module TurnipFormatter::Renderer
|
6
|
+
class TestHtml < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
Html.reset!
|
9
|
+
|
10
|
+
Html.add_javascript(@script_path)
|
11
|
+
Html.add_stylesheet(@style_path)
|
12
|
+
end
|
13
|
+
|
14
|
+
def teardown
|
15
|
+
Html.reset!
|
16
|
+
end
|
17
|
+
|
18
|
+
sub_test_case 'with local file' do
|
19
|
+
def setup
|
20
|
+
@script_path = Tempfile.open(['local', 'js']) do |f|
|
21
|
+
f.write('var s = 1 + 1')
|
22
|
+
f.path
|
23
|
+
end
|
24
|
+
|
25
|
+
@style_path = Tempfile.open(['local', 'css']) do |f|
|
26
|
+
f.write('body { }')
|
27
|
+
f.path
|
28
|
+
end
|
29
|
+
|
30
|
+
super
|
31
|
+
end
|
32
|
+
|
33
|
+
def test_render_javascript_codes
|
34
|
+
assert_match(/#{Regexp.escape('var s = 1 + 1')}/, Html.render_javascript_codes)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_render_javascript_links
|
38
|
+
assert Html.render_javascript_links.empty?
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_render_stylesheet_codes
|
42
|
+
assert_match(/#{Regexp.escape('body { }')}/, Html.render_stylesheet_codes)
|
43
|
+
end
|
44
|
+
|
45
|
+
def test_render_stylesheet_links
|
46
|
+
assert Html.render_stylesheet_links.empty?
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
sub_test_case 'with remote file' do
|
51
|
+
def setup
|
52
|
+
@script_path = 'http://example.com/foo.js'
|
53
|
+
@style_path = 'http://example.com/foo.css'
|
54
|
+
|
55
|
+
super
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_render_javascript_codes
|
59
|
+
assert Html.render_javascript_codes.empty?
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_render_javascript_links
|
63
|
+
assert_match(/#{Regexp.escape('http://example.com/foo.js')}/, Html.render_javascript_links)
|
64
|
+
end
|
65
|
+
|
66
|
+
def test_render_stylesheet_codes
|
67
|
+
assert Html.render_stylesheet_codes.empty?
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_render_stylesheet_links
|
71
|
+
assert_match(/#{Regexp.escape('http://example.com/foo.css')}/, Html.render_stylesheet_links)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'turnip_formatter/resource/scenario/failure'
|
3
|
+
|
4
|
+
module TurnipFormatter::Resource::Scenario
|
5
|
+
class TestFailure < Test::Unit::TestCase
|
6
|
+
include TurnipFormatter::TestHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@resource = Failure.new(scenario_example)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_status
|
13
|
+
assert_equal(:failed, @resource.status)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_steps
|
17
|
+
expect = [:passed, :failed, :unexecute]
|
18
|
+
actual = @resource.steps.map(&:status)
|
19
|
+
|
20
|
+
assert_equal(expect, actual)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def scenario_example
|
26
|
+
@@scenario_example ||= (
|
27
|
+
feature = feature_build(<<-EOS)
|
28
|
+
Feature: A simple feature
|
29
|
+
Scenario: This is a simple feature
|
30
|
+
When I attack it
|
31
|
+
Then [ERROR] it should die
|
32
|
+
And I get drop items
|
33
|
+
EOS
|
34
|
+
|
35
|
+
run_feature(feature, '/path/to/test.feature').first
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'turnip_formatter/resource/scenario/pass'
|
3
|
+
|
4
|
+
module TurnipFormatter::Resource::Scenario
|
5
|
+
class TestPass < Test::Unit::TestCase
|
6
|
+
include TurnipFormatter::TestHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@resource = Pass.new(scenario_example)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_steps
|
13
|
+
assert_equal(4, @resource.steps.size)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_id
|
17
|
+
assert_match(/^scenario_/, @resource.id)
|
18
|
+
end
|
19
|
+
|
20
|
+
def test_status
|
21
|
+
assert_equal(:passed, @resource.status)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_feature_info
|
25
|
+
assert_equal('"A simple feature" in /path/to/test.feature', @resource.feature_info)
|
26
|
+
end
|
27
|
+
|
28
|
+
def test_run_time
|
29
|
+
assert_equal(Float, @resource.run_time.class)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_backgrounds
|
33
|
+
assert_equal(1, @resource.backgrounds.size)
|
34
|
+
assert_equal(2, @resource.backgrounds.first.steps.size)
|
35
|
+
end
|
36
|
+
|
37
|
+
def test_tags
|
38
|
+
assert_equal(['feature_tag', 'scenario_tag'], @resource.tags)
|
39
|
+
end
|
40
|
+
|
41
|
+
private
|
42
|
+
|
43
|
+
def scenario_example
|
44
|
+
@@scenario_example ||= (
|
45
|
+
feature = feature_build(<<-EOS)
|
46
|
+
|
47
|
+
@feature_tag
|
48
|
+
Feature: A simple feature
|
49
|
+
|
50
|
+
Background:
|
51
|
+
Given there is a monster
|
52
|
+
And I have a sword
|
53
|
+
|
54
|
+
@scenario_tag
|
55
|
+
Scenario: This is a simple feature
|
56
|
+
When I attack it
|
57
|
+
Then it should die
|
58
|
+
|
59
|
+
EOS
|
60
|
+
|
61
|
+
run_feature(feature, '/path/to/test.feature').first
|
62
|
+
)
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'turnip_formatter/resource/scenario/pending'
|
3
|
+
|
4
|
+
module TurnipFormatter::Resource::Scenario
|
5
|
+
class TestPending < Test::Unit::TestCase
|
6
|
+
include TurnipFormatter::TestHelper
|
7
|
+
|
8
|
+
def setup
|
9
|
+
@resource = Pending.new(scenario_example)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_status
|
13
|
+
assert_equal(:pending, @resource.status)
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_steps
|
17
|
+
expect = [:passed, :pending, :unexecute]
|
18
|
+
actual = @resource.steps.map(&:status)
|
19
|
+
|
20
|
+
assert_equal(expect, actual)
|
21
|
+
end
|
22
|
+
|
23
|
+
private
|
24
|
+
|
25
|
+
def scenario_example
|
26
|
+
@@scenario_example ||= (
|
27
|
+
feature = feature_build(<<-EOS)
|
28
|
+
Feature: A simple feature
|
29
|
+
Scenario: This is a simple feature
|
30
|
+
When I attack it
|
31
|
+
Then [PENDING] it should die
|
32
|
+
And I get drop items
|
33
|
+
EOS
|
34
|
+
|
35
|
+
run_feature(feature, '/path/to/test.feature').first
|
36
|
+
)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
data/turnip_formatter.gemspec
CHANGED
@@ -20,13 +20,13 @@ Gem::Specification.new do |spec|
|
|
20
20
|
|
21
21
|
spec.add_dependency 'turnip', '~> 3.0.0.pre.beta.4'
|
22
22
|
spec.add_dependency 'slim'
|
23
|
-
spec.add_dependency 'tilt'
|
24
23
|
spec.add_dependency 'rspec', [">=3.0", "<3.5"]
|
25
24
|
|
26
25
|
# For ruby >= 2.1
|
27
26
|
spec.add_dependency 'activesupport', '~> 4.2.7'
|
28
27
|
|
29
28
|
spec.add_development_dependency 'test-unit'
|
29
|
+
spec.add_development_dependency 'test-unit-rr'
|
30
30
|
spec.add_development_dependency 'bundler', '~> 1.3'
|
31
31
|
spec.add_development_dependency 'rake'
|
32
32
|
spec.add_development_dependency 'coveralls'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: turnip_formatter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.0.pre.beta.
|
4
|
+
version: 0.6.0.pre.beta.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wataru MIYAGUNI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-11-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: turnip
|
@@ -38,20 +38,6 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: tilt
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :runtime
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
42
|
name: rspec
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -100,6 +86,20 @@ dependencies:
|
|
100
86
|
- - ">="
|
101
87
|
- !ruby/object:Gem::Version
|
102
88
|
version: '0'
|
89
|
+
- !ruby/object:Gem::Dependency
|
90
|
+
name: test-unit-rr
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
92
|
+
requirements:
|
93
|
+
- - ">="
|
94
|
+
- !ruby/object:Gem::Version
|
95
|
+
version: '0'
|
96
|
+
type: :development
|
97
|
+
prerelease: false
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
99
|
+
requirements:
|
100
|
+
- - ">="
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '0'
|
103
103
|
- !ruby/object:Gem::Dependency
|
104
104
|
name: bundler
|
105
105
|
requirement: !ruby/object:Gem::Requirement
|
@@ -223,63 +223,60 @@ files:
|
|
223
223
|
- lib/rspec/core/formatters/turnip_formatter.rb
|
224
224
|
- lib/turnip_formatter.rb
|
225
225
|
- lib/turnip_formatter/ext/turnip/rspec.rb
|
226
|
-
- lib/turnip_formatter/
|
227
|
-
- lib/turnip_formatter/
|
228
|
-
- lib/turnip_formatter/
|
229
|
-
- lib/turnip_formatter/
|
230
|
-
- lib/turnip_formatter/printer/tab_feature_statistics.rb
|
231
|
-
- lib/turnip_formatter/printer/tab_speed_statistics.rb
|
232
|
-
- lib/turnip_formatter/printer/tab_tag_statistics.rb
|
226
|
+
- lib/turnip_formatter/renderer/html.rb
|
227
|
+
- lib/turnip_formatter/renderer/html/assets/turnip_formatter.css
|
228
|
+
- lib/turnip_formatter/renderer/html/assets/turnip_formatter.js
|
229
|
+
- lib/turnip_formatter/renderer/html/assets/turnip_formatter.scss
|
233
230
|
- lib/turnip_formatter/renderer/html/base.rb
|
234
231
|
- lib/turnip_formatter/renderer/html/data_table.rb
|
235
232
|
- lib/turnip_formatter/renderer/html/doc_string.rb
|
233
|
+
- lib/turnip_formatter/renderer/html/index.rb
|
234
|
+
- lib/turnip_formatter/renderer/html/runtime_error.rb
|
235
|
+
- lib/turnip_formatter/renderer/html/scenario.rb
|
236
|
+
- lib/turnip_formatter/renderer/html/statistics_feature.rb
|
237
|
+
- lib/turnip_formatter/renderer/html/statistics_speed.rb
|
238
|
+
- lib/turnip_formatter/renderer/html/statistics_tag.rb
|
236
239
|
- lib/turnip_formatter/renderer/html/step.rb
|
237
240
|
- lib/turnip_formatter/renderer/html/views/data_table.html.erb
|
238
241
|
- lib/turnip_formatter/renderer/html/views/doc_string.html.erb
|
242
|
+
- lib/turnip_formatter/renderer/html/views/index.html.erb
|
243
|
+
- lib/turnip_formatter/renderer/html/views/runtime_error.html.erb
|
244
|
+
- lib/turnip_formatter/renderer/html/views/scenario.html.erb
|
245
|
+
- lib/turnip_formatter/renderer/html/views/statistics_feature.html.erb
|
246
|
+
- lib/turnip_formatter/renderer/html/views/statistics_speed.html.erb
|
247
|
+
- lib/turnip_formatter/renderer/html/views/statistics_tag.html.erb
|
239
248
|
- lib/turnip_formatter/renderer/html/views/step.html.erb
|
249
|
+
- lib/turnip_formatter/resource/scenario/base.rb
|
250
|
+
- lib/turnip_formatter/resource/scenario/failure.rb
|
251
|
+
- lib/turnip_formatter/resource/scenario/pass.rb
|
252
|
+
- lib/turnip_formatter/resource/scenario/pending.rb
|
240
253
|
- lib/turnip_formatter/resource/step.rb
|
241
|
-
- lib/turnip_formatter/scenario/base.rb
|
242
|
-
- lib/turnip_formatter/scenario/failure.rb
|
243
|
-
- lib/turnip_formatter/scenario/pass.rb
|
244
|
-
- lib/turnip_formatter/scenario/pending.rb
|
245
|
-
- lib/turnip_formatter/step.rb
|
246
254
|
- lib/turnip_formatter/step_template/base.rb
|
247
255
|
- lib/turnip_formatter/step_template/exception.rb
|
248
256
|
- lib/turnip_formatter/step_template/exception.slim
|
249
257
|
- lib/turnip_formatter/step_template/source.rb
|
250
258
|
- lib/turnip_formatter/template.rb
|
251
|
-
- lib/turnip_formatter/template/exception.slim
|
252
|
-
- lib/turnip_formatter/template/index.slim
|
253
|
-
- lib/turnip_formatter/template/runtime_exception.slim
|
254
|
-
- lib/turnip_formatter/template/scenario.slim
|
255
|
-
- lib/turnip_formatter/template/tab_feature_statistics.slim
|
256
|
-
- lib/turnip_formatter/template/tab_speed_statistics.slim
|
257
|
-
- lib/turnip_formatter/template/tab_tag_statistics.slim
|
258
|
-
- lib/turnip_formatter/template/turnip_formatter.css
|
259
|
-
- lib/turnip_formatter/template/turnip_formatter.js
|
260
|
-
- lib/turnip_formatter/template/turnip_formatter.scss
|
261
259
|
- lib/turnip_formatter/version.rb
|
262
260
|
- spec/spec_helper.rb
|
263
261
|
- spec/support/example_helper.rb
|
264
262
|
- spec/support/passed.feature
|
265
263
|
- spec/support/step_helper.rb
|
266
|
-
- spec/turnip_formatter/printer/index_spec.rb
|
267
|
-
- spec/turnip_formatter/printer/scenario_spec.rb
|
268
|
-
- spec/turnip_formatter/printer/tab_feature_statistics_spec.rb
|
269
|
-
- spec/turnip_formatter/printer/tab_speed_statistics_spec.rb
|
270
|
-
- spec/turnip_formatter/printer/tab_tag_statistics_spec.rb
|
271
|
-
- spec/turnip_formatter/scenario/base_spec.rb
|
272
|
-
- spec/turnip_formatter/scenario/failure_spec.rb
|
273
|
-
- spec/turnip_formatter/scenario/pending_spec.rb
|
274
264
|
- spec/turnip_formatter/step_template/base_spec.rb
|
275
265
|
- spec/turnip_formatter/step_template/exception_spec.rb
|
276
266
|
- spec/turnip_formatter/step_template/source_spec.rb
|
277
|
-
- spec/turnip_formatter/template_spec.rb
|
278
267
|
- test/helper.rb
|
279
|
-
- test/sample.feature
|
280
268
|
- test/turnip_formatter/renderer/html/test_data_table.rb
|
281
269
|
- test/turnip_formatter/renderer/html/test_doc_string.rb
|
270
|
+
- test/turnip_formatter/renderer/html/test_index.rb
|
271
|
+
- test/turnip_formatter/renderer/html/test_runtime_error.rb
|
272
|
+
- test/turnip_formatter/renderer/html/test_statistics_feature.rb
|
273
|
+
- test/turnip_formatter/renderer/html/test_statistics_speed.rb
|
274
|
+
- test/turnip_formatter/renderer/html/test_statistics_tag.rb
|
282
275
|
- test/turnip_formatter/renderer/html/test_step.rb
|
276
|
+
- test/turnip_formatter/renderer/test_html.rb
|
277
|
+
- test/turnip_formatter/resource/scenario/test_failure.rb
|
278
|
+
- test/turnip_formatter/resource/scenario/test_pass.rb
|
279
|
+
- test/turnip_formatter/resource/scenario/test_pending.rb
|
283
280
|
- turnip_formatter.gemspec
|
284
281
|
homepage: https://github.com/gongo/turnip_formatter
|
285
282
|
licenses:
|
@@ -310,15 +307,6 @@ test_files:
|
|
310
307
|
- spec/support/example_helper.rb
|
311
308
|
- spec/support/passed.feature
|
312
309
|
- spec/support/step_helper.rb
|
313
|
-
- spec/turnip_formatter/printer/index_spec.rb
|
314
|
-
- spec/turnip_formatter/printer/scenario_spec.rb
|
315
|
-
- spec/turnip_formatter/printer/tab_feature_statistics_spec.rb
|
316
|
-
- spec/turnip_formatter/printer/tab_speed_statistics_spec.rb
|
317
|
-
- spec/turnip_formatter/printer/tab_tag_statistics_spec.rb
|
318
|
-
- spec/turnip_formatter/scenario/base_spec.rb
|
319
|
-
- spec/turnip_formatter/scenario/failure_spec.rb
|
320
|
-
- spec/turnip_formatter/scenario/pending_spec.rb
|
321
310
|
- spec/turnip_formatter/step_template/base_spec.rb
|
322
311
|
- spec/turnip_formatter/step_template/exception_spec.rb
|
323
312
|
- spec/turnip_formatter/step_template/source_spec.rb
|
324
|
-
- spec/turnip_formatter/template_spec.rb
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'turnip_formatter/printer'
|
2
|
-
require 'turnip_formatter/printer/scenario'
|
3
|
-
require 'turnip_formatter/printer/tab_feature_statistics'
|
4
|
-
require 'turnip_formatter/printer/tab_tag_statistics'
|
5
|
-
require 'turnip_formatter/printer/tab_speed_statistics'
|
6
|
-
|
7
|
-
module TurnipFormatter
|
8
|
-
module Printer
|
9
|
-
class Index
|
10
|
-
class << self
|
11
|
-
include TurnipFormatter::Printer
|
12
|
-
|
13
|
-
def print_out(params)
|
14
|
-
render_template(:index, {
|
15
|
-
scenarios: params[:scenarios],
|
16
|
-
failed_count: params[:failed_count],
|
17
|
-
pending_count: params[:pending_count],
|
18
|
-
total_time: params[:total_time],
|
19
|
-
scenario_files: params[:scenario_files]
|
20
|
-
}
|
21
|
-
)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'turnip_formatter/printer'
|
2
|
-
|
3
|
-
module TurnipFormatter
|
4
|
-
module Printer
|
5
|
-
class RuntimeError
|
6
|
-
class << self
|
7
|
-
include TurnipFormatter::Printer
|
8
|
-
|
9
|
-
def print_out(example, exception)
|
10
|
-
render_template(:runtime_exception, {
|
11
|
-
example: example,
|
12
|
-
runtime_exception: runtime_exception(exception),
|
13
|
-
example_exception: example_exception(example),
|
14
|
-
}
|
15
|
-
)
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def runtime_exception(exception)
|
21
|
-
render_template(:exception, { title: 'Runtime', exception: exception })
|
22
|
-
end
|
23
|
-
|
24
|
-
def example_exception(example)
|
25
|
-
return '' unless example.exception
|
26
|
-
|
27
|
-
render_template(:exception, {
|
28
|
-
title: 'Example',
|
29
|
-
exception: example.exception
|
30
|
-
}
|
31
|
-
)
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require 'turnip_formatter/printer'
|
2
|
-
require 'turnip_formatter/printer/runtime_error'
|
3
|
-
require 'turnip_formatter/renderer/html/step'
|
4
|
-
|
5
|
-
module TurnipFormatter
|
6
|
-
module Printer
|
7
|
-
class Scenario
|
8
|
-
class << self
|
9
|
-
include TurnipFormatter::Printer
|
10
|
-
|
11
|
-
def print_out(scenario)
|
12
|
-
#
|
13
|
-
# TODO output for scenario.valid? == false
|
14
|
-
#
|
15
|
-
render_template(:scenario, scenario: scenario) if scenario.valid?
|
16
|
-
rescue => e
|
17
|
-
TurnipFormatter::Printer::RuntimeError.print_out(scenario.example, e)
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'turnip_formatter/printer'
|
4
|
-
require 'ostruct'
|
5
|
-
|
6
|
-
module TurnipFormatter
|
7
|
-
module Printer
|
8
|
-
module TabFeatureStatistics
|
9
|
-
class << self
|
10
|
-
include TurnipFormatter::Printer
|
11
|
-
|
12
|
-
def print_out(scenarios)
|
13
|
-
features = scenarios.group_by { |s| s.feature_name }
|
14
|
-
|
15
|
-
results = features.map do |name, feature_scenarios|
|
16
|
-
feature_analysis(name, feature_scenarios)
|
17
|
-
end
|
18
|
-
|
19
|
-
render_template(:tab_feature_statistics, { analysis_results: results })
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def feature_analysis(name, scenarios)
|
25
|
-
status_group = scenarios.group_by { |s| s.status }
|
26
|
-
status_group.default = []
|
27
|
-
|
28
|
-
info = OpenStruct.new(
|
29
|
-
name: name,
|
30
|
-
scenario_count: scenarios.size,
|
31
|
-
passed_count: status_group["passed"].size,
|
32
|
-
failed_count: status_group["failed"].size,
|
33
|
-
pending_count: status_group["pending"].size,
|
34
|
-
status: 'failed'
|
35
|
-
)
|
36
|
-
|
37
|
-
if info.failed_count.zero?
|
38
|
-
info.status = info.pending_count.zero? ? 'passed' : 'pending'
|
39
|
-
end
|
40
|
-
|
41
|
-
info
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'turnip_formatter/printer'
|
4
|
-
require 'ostruct'
|
5
|
-
|
6
|
-
module TurnipFormatter
|
7
|
-
module Printer
|
8
|
-
class TabSpeedStatistics
|
9
|
-
class << self
|
10
|
-
include TurnipFormatter::Printer
|
11
|
-
|
12
|
-
def print_out(scenarios)
|
13
|
-
passed_scenarios = scenarios.select { |s| s.status == 'passed' }
|
14
|
-
results = speed_analysis(passed_scenarios)
|
15
|
-
render_template(:tab_speed_statistics, { analysis_results: results })
|
16
|
-
end
|
17
|
-
|
18
|
-
private
|
19
|
-
|
20
|
-
def speed_analysis(scenarios)
|
21
|
-
scenarios.map do |s|
|
22
|
-
OpenStruct.new(
|
23
|
-
{
|
24
|
-
id: s.id,
|
25
|
-
feature_name: s.feature_name,
|
26
|
-
name: s.name,
|
27
|
-
run_time: s.run_time
|
28
|
-
}
|
29
|
-
)
|
30
|
-
end.sort { |a, b| a.run_time <=> b.run_time }
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,76 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
|
3
|
-
require 'turnip_formatter/printer'
|
4
|
-
require 'ostruct'
|
5
|
-
|
6
|
-
module TurnipFormatter
|
7
|
-
module Printer
|
8
|
-
class TabTagStatistics
|
9
|
-
class << self
|
10
|
-
include TurnipFormatter::Printer
|
11
|
-
|
12
|
-
def print_out(scenarios)
|
13
|
-
tags = group_by_tag(scenarios)
|
14
|
-
|
15
|
-
results = tags.map do |name, tag_scenarios|
|
16
|
-
tag_analysis(name, tag_scenarios)
|
17
|
-
end
|
18
|
-
|
19
|
-
render_template(:tab_tag_statistics, { analysis_results: results })
|
20
|
-
end
|
21
|
-
|
22
|
-
private
|
23
|
-
|
24
|
-
def tag_analysis(name, scenarios)
|
25
|
-
status_group = scenarios.group_by { |s| s[:scenario].status }
|
26
|
-
status_group.default = []
|
27
|
-
|
28
|
-
info = OpenStruct.new(
|
29
|
-
name: name,
|
30
|
-
scenario_count: scenarios.size,
|
31
|
-
passed_count: status_group['passed'].size,
|
32
|
-
failed_count: status_group['failed'].size,
|
33
|
-
pending_count: status_group['pending'].size,
|
34
|
-
status: 'failed'
|
35
|
-
)
|
36
|
-
|
37
|
-
if info.failed_count.zero?
|
38
|
-
info.status = info.pending_count.zero? ? 'passed' : 'pending'
|
39
|
-
end
|
40
|
-
|
41
|
-
info
|
42
|
-
end
|
43
|
-
|
44
|
-
#
|
45
|
-
# Image...
|
46
|
-
#
|
47
|
-
# [
|
48
|
-
# { tags: [:a, :b], val: 3 },
|
49
|
-
# { tags: [:a], val: 4 },
|
50
|
-
# { tags: [:b], val: 5 },
|
51
|
-
# ]
|
52
|
-
# # => [
|
53
|
-
# [:a, [3, 4]],
|
54
|
-
# [:b, [3, 5]],
|
55
|
-
# ]
|
56
|
-
#
|
57
|
-
#
|
58
|
-
def group_by_tag(scenarios)
|
59
|
-
scenarios.map do |scenario|
|
60
|
-
if scenario.valid?
|
61
|
-
if scenario.tags.empty?
|
62
|
-
{ name: 'turnip', scenario: scenario }
|
63
|
-
else
|
64
|
-
scenario.tags.map do |tag|
|
65
|
-
{ name: '@' + tag, scenario: scenario }
|
66
|
-
end
|
67
|
-
end
|
68
|
-
else
|
69
|
-
{ name: 'runtime error', scenario: scenario }
|
70
|
-
end
|
71
|
-
end.flatten.group_by { |s| s[:name] }.sort
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|