turnip_formatter 0.6.0.pre.beta.7 → 0.6.0

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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/lib/turnip_formatter/resource/scenario/base.rb +20 -4
  4. data/lib/turnip_formatter/resource/scenario/failure.rb +49 -54
  5. data/lib/turnip_formatter/resource/scenario/pass.rb +3 -3
  6. data/lib/turnip_formatter/resource/scenario/pending.rb +17 -20
  7. data/lib/turnip_formatter/resource/step/failure_result.rb +26 -0
  8. data/lib/turnip_formatter/resource/step/hook.rb +17 -9
  9. data/lib/turnip_formatter/resource/step/pending_result.rb +19 -0
  10. data/lib/turnip_formatter/resource/step/step.rb +50 -0
  11. data/lib/turnip_formatter/version.rb +1 -1
  12. data/test/helper.rb +26 -2
  13. data/test/turnip_formatter/renderer/html/test_step.rb +6 -3
  14. data/test/turnip_formatter/step_template/test_base.rb +54 -0
  15. data/test/turnip_formatter/step_template/test_exception.rb +33 -0
  16. data/test/turnip_formatter/step_template/test_source.rb +27 -0
  17. data/turnip_formatter.gemspec +2 -3
  18. metadata +28 -41
  19. data/.rspec +0 -1
  20. data/Guardfile +0 -9
  21. data/lib/turnip_formatter/resource/step/base.rb +0 -24
  22. data/lib/turnip_formatter/resource/step/failure.rb +0 -27
  23. data/lib/turnip_formatter/resource/step/pass.rb +0 -13
  24. data/lib/turnip_formatter/resource/step/pending.rb +0 -21
  25. data/lib/turnip_formatter/resource/step/unexecute.rb +0 -13
  26. data/spec/spec_helper.rb +0 -25
  27. data/spec/support/example_helper.rb +0 -57
  28. data/spec/support/passed.feature +0 -4
  29. data/spec/support/step_helper.rb +0 -27
  30. data/spec/turnip_formatter/step_template/base_spec.rb +0 -82
  31. data/spec/turnip_formatter/step_template/exception_spec.rb +0 -25
  32. data/spec/turnip_formatter/step_template/source_spec.rb +0 -18
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 03749d6d53a310780fc1e2595f537e7b35a9e73a
4
- data.tar.gz: 1739d0a736c12f0e10b46c35192f2e0a321d1e7a
3
+ metadata.gz: 671a78926ca1578069e874dbca23b8fff9514c7b
4
+ data.tar.gz: d9a95077cd0cde1860a81c21f85e92b5ea63b08d
5
5
  SHA512:
6
- metadata.gz: a4b88812e427868f23695be4f9285afccf0970790521056e7f390669186a9e721ee94f033f9a5f51c9ca7ca7bdf85cb1e782c2d948c39c1a10ca6a6a72ab9a83
7
- data.tar.gz: d9e4560bf2e3030a53842fa430a6e944714696a65e6ff8f0bfa1679a8e2f09a1aafcb00ef4811083b04dfb1e0892ce08a5af841f55829ed48cf933e4f2e062c0
6
+ metadata.gz: c488247c66369b917d7864a3e698a5352df9b290557e8ecd45845b75c7e968e774e3fffd12f1877a4f9f4e47721ad384e34fef214f51f60e89479268dfbab109
7
+ data.tar.gz: e4f32e51de9127547a980f8361930e19a82632971b76a0afb7c3517766ecc2d29ce5b6a79af53502a76bcda7b6fb74b88afb8ba5a5c93d32823752df5ee3e490
data/.gitignore CHANGED
@@ -11,7 +11,6 @@ doc/
11
11
  lib/bundler/man
12
12
  pkg
13
13
  rdoc
14
- spec/reports
15
14
  test/tmp
16
15
  test/version_tmp
17
16
  tmp
@@ -1,6 +1,6 @@
1
1
  require 'forwardable'
2
- require 'turnip_formatter/resource/step/pass'
3
- require 'turnip_formatter/resource/step/unexecute'
2
+ require 'turnip_formatter/resource/step/step'
3
+ require 'turnip_formatter/resource/step/hook'
4
4
 
5
5
  module TurnipFormatter
6
6
  module Resource
@@ -53,8 +53,20 @@ module TurnipFormatter
53
53
  example.metadata[:turnip_formatter][:feature]
54
54
  end
55
55
 
56
- def raw_steps
57
- backgrounds.map(&:steps).flatten + raw.steps
56
+ def steps
57
+ return @steps if @steps
58
+
59
+ @steps = raw_steps.map do |step|
60
+ TurnipFormatter::Resource::Step::Step.new(example, step)
61
+ end
62
+
63
+ mark_status
64
+
65
+ @steps
66
+ end
67
+
68
+ def mark_status
69
+ raise NotImplementedError
58
70
  end
59
71
 
60
72
  private
@@ -63,6 +75,10 @@ module TurnipFormatter
63
75
  @raw = example.metadata[:turnip_formatter][:scenario]
64
76
  end
65
77
 
78
+ def raw_steps
79
+ backgrounds.map(&:steps).flatten + raw.steps
80
+ end
81
+
66
82
  def feature_file_path
67
83
  example.metadata[:file_path]
68
84
  end
@@ -1,6 +1,4 @@
1
1
  require 'turnip_formatter/resource/scenario/base'
2
- require 'turnip_formatter/resource/step/failure'
3
- require 'turnip_formatter/resource/step/hook'
4
2
  require 'rspec/core/formatters/exception_presenter'
5
3
 
6
4
  module TurnipFormatter
@@ -8,77 +6,74 @@ module TurnipFormatter
8
6
  module Scenario
9
7
  class Failure < Base
10
8
  #
11
- # Return steps
9
+ # Mark status for each step
12
10
  #
13
11
  # example:
14
12
  #
15
13
  # When foo
16
- # And bar
17
- # And baz <= failed line
18
- # Then piyo
14
+ # And bar <= failed line
15
+ # Then baz
19
16
  #
20
- # # => [
21
- # # <Step::Pass 'foo'>
22
- # # <Step::Pass 'bar'>
23
- # # <Step::Failure 'baz'>
24
- # # <Step::Unexecute 'piyo'>
17
+ # # @steps => [
18
+ # # <Step::Step 'foo'> # .status => :passed
19
+ # # <Step::Step 'bar'> # .status => :failed
20
+ # # <Step::Step 'baz'> # .status => :unexecute
25
21
  # # ]
26
22
  #
27
- def steps
23
+ # example: aggregate_failures = true
24
+ #
25
+ # # @steps => [
26
+ # # <Step::Step 'foo'> # .status => :passed
27
+ # # <Step::Step 'bar'> # .status => :failed
28
+ # # <Step::Step 'baz'> # .status => :passed
29
+ # # ]
30
+ #
31
+ # example: Occurs error in RSpec before hook
32
+ #
33
+ # # @steps => [
34
+ # # <Step::BeforeHook ''> # .status => :failed
35
+ # # <Step::Step 'foo'> # .status => :unexecute
36
+ # # <Step::Step 'bar'> # .status => :unexecute
37
+ # # <Step::Step 'baz'> # .status => :unexecute
38
+ # # ]
39
+ #
40
+ # example: Occurs error in RSpec after hook
41
+ #
42
+ # # @steps => [
43
+ # # <Step::Step 'foo'> # .status => :passed
44
+ # # <Step::Step 'bar'> # .status => :failed
45
+ # # <Step::Step 'baz'> # .status => :unexecute
46
+ # # <Step::AfterHook ''> # .status => :failed
47
+ # # ]
48
+ #
49
+ def mark_status
28
50
  exceptions = all_exception_group_by_line_number
29
51
 
30
52
  if exceptions.has_key?(:before)
31
- return steps_with_error_in_before_hook(exceptions[:before])
53
+ before_step = TurnipFormatter::Resource::Step::BeforeHook.new(example)
54
+ before_step.set_exceptions(exceptions[:before])
55
+ @steps.unshift(before_step)
56
+ return
32
57
  end
33
58
 
34
- steps = steps_with_error(exceptions)
59
+ @steps.each do |step|
60
+ step.mark_as_executed
61
+ exs = exceptions[step.line]
35
62
 
36
- if exceptions.has_key?(:after)
37
- return steps_with_error_in_after_hook(steps, exceptions[:after])
38
- end
63
+ next unless exs
64
+ step.set_exceptions(exs)
39
65
 
40
- steps
41
- end
42
-
43
- private
44
-
45
- def steps_with_error(exceptions)
46
- step_klass = TurnipFormatter::Resource::Step::Pass
47
-
48
- raw_steps.map do |rs|
49
- ex = exceptions[rs.line]
50
- next step_klass.new(example, rs) unless ex
51
-
52
- # The status of step after error step is determined by `aggregate_failures` option
53
- if example.metadata[:aggregate_failures]
54
- step_klass = TurnipFormatter::Resource::Step::Pass
55
- else
56
- step_klass = TurnipFormatter::Resource::Step::Unexecute
57
- end
58
-
59
- TurnipFormatter::Resource::Step::Failure.new(example, rs).tap do |step|
60
- step.set_exceptions(ex)
61
- end
66
+ break if !example.metadata[:aggregate_failures]
62
67
  end
63
- end
64
68
 
65
- def steps_with_error_in_before_hook(exceptions)
66
- before_step = TurnipFormatter::Resource::Step::BeforeHook.new(example)
67
- before_step.set_exceptions(exceptions)
68
-
69
- after_steps = raw_steps.map do |rs|
70
- TurnipFormatter::Resource::Step::Unexecute.new(example, rs)
69
+ if exceptions.has_key?(:after)
70
+ after_step = TurnipFormatter::Resource::Step::AfterHook.new(example)
71
+ after_step.set_exceptions(exceptions[:after])
72
+ @steps.push(after_step)
71
73
  end
72
-
73
- [before_step] + after_steps
74
74
  end
75
75
 
76
- def steps_with_error_in_after_hook(steps, exceptions)
77
- after_step = TurnipFormatter::Resource::Step::AfterHook.new(example)
78
- after_step.set_exceptions(exceptions)
79
-
80
- steps + [after_step]
81
- end
76
+ private
82
77
 
83
78
  def error_in_before_hook?(exceptions)
84
79
  exceptions.has_key?(:before)
@@ -4,9 +4,9 @@ module TurnipFormatter
4
4
  module Resource
5
5
  module Scenario
6
6
  class Pass < Base
7
- def steps
8
- raw_steps.map do |rs|
9
- TurnipFormatter::Resource::Step::Pass.new(example, rs)
7
+ def mark_status
8
+ @steps.each do |step|
9
+ step.mark_as_executed
10
10
  end
11
11
  end
12
12
  end
@@ -1,38 +1,35 @@
1
1
  require 'turnip_formatter/resource/scenario/base'
2
- require 'turnip_formatter/resource/step/pending'
3
2
 
4
3
  module TurnipFormatter
5
4
  module Resource
6
5
  module Scenario
7
6
  class Pending < Base
8
7
  #
9
- # Return steps
8
+ # Mark status for each step
10
9
  #
11
10
  # example:
12
11
  #
13
12
  # When foo
14
- # And bar
15
- # And baz <= pending line
16
- # Then piyo
13
+ # And bar <= pending line
14
+ # Then baz
17
15
  #
18
- # # => [
19
- # # <Step::Pass 'foo'>
20
- # # <Step::Pass 'bar'>
21
- # # <Step::Pending 'baz'>
22
- # # <Step::Unexecute 'piyo'>
16
+ # # @steps => [
17
+ # # <Step::Step 'foo'> # .status => :passed
18
+ # # <Step::Step 'bar'> # .status => :pending
19
+ # # <Step::Step 'baz'> # .status => :unexecute
23
20
  # # ]
24
21
  #
25
- def steps
26
- raw_steps.map do |rs|
27
- if rs.line < pending_line_number
28
- klass = TurnipFormatter::Resource::Step::Pass
29
- elsif rs.line == pending_line_number
30
- klass = TurnipFormatter::Resource::Step::Pending
31
- else
32
- klass = TurnipFormatter::Resource::Step::Unexecute
33
- end
22
+ def mark_status
23
+ @steps.each do |step|
24
+ step.mark_as_executed
34
25
 
35
- klass.new(example, rs)
26
+ if pending_line_number == step.line
27
+ step.set_pending(
28
+ example.execution_result.pending_message,
29
+ example.location
30
+ )
31
+ break
32
+ end
36
33
  end
37
34
  end
38
35
 
@@ -0,0 +1,26 @@
1
+ module TurnipFormatter
2
+ module Resource
3
+ module Step
4
+ module FailureResult
5
+ def failed?
6
+ !exceptions.empty?
7
+ end
8
+
9
+ def exceptions
10
+ @exceptions ||= []
11
+ end
12
+
13
+ #
14
+ # @param [Array<Exception>] exs
15
+ #
16
+ def set_exceptions(exs)
17
+ if !exs.is_a?(Array)
18
+ exs = [exs]
19
+ end
20
+
21
+ exceptions.concat(exs)
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -1,9 +1,14 @@
1
+ require 'turnip_formatter/resource/step/failure_result'
2
+ require 'turnip_formatter/resource/step/pending_result'
3
+
1
4
  module TurnipFormatter
2
5
  module Resource
3
6
  module Step
4
- class HookBase
7
+ class Hook
8
+ include ::TurnipFormatter::Resource::Step::FailureResult
9
+ include ::TurnipFormatter::Resource::Step::PendingResult
10
+
5
11
  attr_reader :example
6
- attr_reader :exceptions
7
12
 
8
13
  #
9
14
  # @param [RSpec::Core::Example] example
@@ -13,12 +18,15 @@ module TurnipFormatter
13
18
  @exceptions = []
14
19
  end
15
20
 
16
- def set_exceptions(exceptions)
17
- @exceptions = exceptions
18
- end
19
-
20
21
  def status
21
- :failed
22
+ case
23
+ when failed?
24
+ :failed
25
+ when pending?
26
+ :pending
27
+ else
28
+ :passed
29
+ end
22
30
  end
23
31
 
24
32
  def text
@@ -34,13 +42,13 @@ module TurnipFormatter
34
42
  end
35
43
  end
36
44
 
37
- class BeforeHook < HookBase
45
+ class BeforeHook < Hook
38
46
  def keyword
39
47
  'BeforeHook'
40
48
  end
41
49
  end
42
50
 
43
- class AfterHook < HookBase
51
+ class AfterHook < Hook
44
52
  def keyword
45
53
  'AfterHook'
46
54
  end
@@ -0,0 +1,19 @@
1
+ module TurnipFormatter
2
+ module Resource
3
+ module Step
4
+ module PendingResult
5
+ attr_reader :pending_message
6
+ attr_reader :pending_location
7
+
8
+ def pending?
9
+ !pending_message.nil?
10
+ end
11
+
12
+ def set_pending(message, location)
13
+ @pending_message = message
14
+ @pending_location = location
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,50 @@
1
+ require 'forwardable'
2
+ require 'turnip_formatter/resource/step/failure_result'
3
+ require 'turnip_formatter/resource/step/pending_result'
4
+
5
+ module TurnipFormatter
6
+ module Resource
7
+ module Step
8
+ class Step
9
+ include ::TurnipFormatter::Resource::Step::FailureResult
10
+ include ::TurnipFormatter::Resource::Step::PendingResult
11
+
12
+ extend Forwardable
13
+ def_delegators :@raw, :keyword, :text, :line, :argument
14
+
15
+ attr_reader :example
16
+
17
+ #
18
+ # @param [RSpec::Core::Example] example
19
+ # @param [Turnip::Node::Step] raw
20
+ #
21
+ def initialize(example, raw)
22
+ @example = example
23
+ @raw = raw
24
+ @executed = false
25
+ end
26
+
27
+ def mark_as_executed
28
+ @executed = true
29
+ end
30
+
31
+ def executed?
32
+ @executed
33
+ end
34
+
35
+ def status
36
+ case
37
+ when failed?
38
+ :failed
39
+ when pending?
40
+ :pending
41
+ when executed?
42
+ :passed
43
+ else
44
+ :unexecute
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module TurnipFormatter
4
- VERSION = '0.6.0-beta.7'
4
+ VERSION = '0.6.0'
5
5
  end
data/test/helper.rb CHANGED
@@ -2,6 +2,8 @@ require 'test/unit'
2
2
  require 'oga'
3
3
  require 'tempfile'
4
4
  require 'turnip_formatter/ext/turnip/rspec'
5
+ require 'turnip_formatter/resource/scenario/failure'
6
+ require 'turnip_formatter/resource/scenario/pending'
5
7
 
6
8
  def html_parse(str)
7
9
  Oga.parse_xml(str)
@@ -15,6 +17,29 @@ module TurnipFormatter
15
17
  end
16
18
  end
17
19
 
20
+ def dummy_failed_step
21
+ feature = feature_build(<<-EOS)
22
+ Feature: feature
23
+ Scenario: Failed
24
+ When [ERROR]
25
+ EOS
26
+
27
+ TurnipFormatter::Resource::Scenario::Failure.new(
28
+ run_feature(feature, '/path/to/test.feature').first
29
+ ).steps[0]
30
+ end
31
+
32
+ def dummy_pending_step
33
+ feature = feature_build(<<-EOS)
34
+ Feature: feature
35
+ Scenario: Pending
36
+ When [PENDING]
37
+ EOS
38
+ TurnipFormatter::Resource::Scenario::Pending.new(
39
+ run_feature(feature, '/path/to/test.feature').first
40
+ ).steps[0]
41
+ end
42
+
18
43
  #
19
44
  # @param text [String] feature text
20
45
  # @return [Turnip::Node::Feature]
@@ -47,8 +72,7 @@ module TurnipFormatter
47
72
  # Emulate Turnip::RSpec#run_feature
48
73
  #
49
74
  # @param feature [Turnip::Node::Feature]
50
- # @param failed_at [Array<Interger>] Line numbers to assume that test fails
51
- # @param feature_file_path [String]
75
+ # @param filename [String]
52
76
  #
53
77
  # @return [Array<RSpec::Core::Example>] Array of example for scenarios.
54
78
  #
@@ -7,7 +7,8 @@ module TurnipFormatter::Renderer::Html
7
7
 
8
8
  sub_test_case 'step without argument' do
9
9
  def setup
10
- resource = TurnipFormatter::Resource::Step::Pass.new(nil, sample_step)
10
+ resource = TurnipFormatter::Resource::Step::Step.new(nil, sample_step)
11
+ resource.mark_as_executed
11
12
  @renderer = Step.new(resource)
12
13
  end
13
14
 
@@ -22,7 +23,8 @@ module TurnipFormatter::Renderer::Html
22
23
 
23
24
  sub_test_case 'step with argument' do
24
25
  def setup
25
- resource = TurnipFormatter::Resource::Step::Pass.new(nil, sample_step_with_docstring)
26
+ resource = TurnipFormatter::Resource::Step::Step.new(nil, sample_step_with_docstring)
27
+ resource.mark_as_executed
26
28
  @renderer = Step.new(resource)
27
29
  end
28
30
 
@@ -36,7 +38,8 @@ module TurnipFormatter::Renderer::Html
36
38
 
37
39
  sub_test_case 'step should be escaped html style' do
38
40
  def setup
39
- resource = TurnipFormatter::Resource::Step::Pass.new(nil, sample_step_should_escaping)
41
+ resource = TurnipFormatter::Resource::Step::Step.new(nil, sample_step_should_escaping)
42
+ resource.mark_as_executed
40
43
  @renderer = Step.new(resource)
41
44
  end
42
45
 
@@ -0,0 +1,54 @@
1
+ require 'helper'
2
+ require 'turnip_formatter/step_template/base'
3
+
4
+ module TurnipFormatter::StepTemplate
5
+ class TestBase < Test::Unit::TestCase
6
+ def setup
7
+ @backup_templates = TurnipFormatter.step_templates
8
+ TurnipFormatter.step_templates.clear
9
+
10
+ Class.new(TurnipFormatter::StepTemplate::Base) do
11
+ on_passed :build_passed
12
+ on_failed :build_failed1
13
+ on_failed :build_failed2
14
+ on_pending :build_pending
15
+
16
+ def build_passed(_) ; 'build_passed' ; end
17
+ def build_failed1(_) ; 'build_failed' ; end
18
+ def build_failed2(_) ; 'hello_world' ; end
19
+ def build_pending(_) ; 'build_pending' ; end
20
+ end
21
+ end
22
+
23
+ def teardown
24
+ TurnipFormatter.step_templates.clear
25
+ @backup_templates.each do |t|
26
+ TurnipFormatter.step_templates << t
27
+ end
28
+ end
29
+
30
+ def test_on_passed
31
+ text = TurnipFormatter.step_templates_for(:passed).map do |t, m|
32
+ t.send(m, nil)
33
+ end.join
34
+
35
+ assert_equal('build_passed', text)
36
+ end
37
+
38
+ def test_on_failed
39
+ text = TurnipFormatter.step_templates_for(:failed).map do |t, m|
40
+ t.send(m, nil)
41
+ end.join
42
+
43
+ assert_equal('build_failedhello_world', text)
44
+ end
45
+
46
+ def test_on_pending
47
+ text = TurnipFormatter.step_templates_for(:pending).map do |t, m|
48
+ t.send(m, nil)
49
+ end.join
50
+
51
+ assert_equal('build_pending', text)
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,33 @@
1
+ require 'helper'
2
+ require 'turnip_formatter/step_template/base'
3
+
4
+ module TurnipFormatter::StepTemplate
5
+ class TestException < Test::Unit::TestCase
6
+ include TurnipFormatter::TestHelper
7
+
8
+ def setup
9
+ @backup_templates = TurnipFormatter.step_templates
10
+ TurnipFormatter.step_templates.clear
11
+
12
+ @template = TurnipFormatter::StepTemplate::Exception.new
13
+ end
14
+
15
+ def teardown
16
+ TurnipFormatter.step_templates.clear
17
+ @backup_templates.each do |t|
18
+ TurnipFormatter.step_templates << t
19
+ end
20
+ end
21
+
22
+ def test_build_failed
23
+ actual = @template.build_failed(dummy_failed_step)
24
+ assert_match(%r{<div class="step_exception">}, actual)
25
+ end
26
+
27
+ def test_build_pending
28
+ actual = @template.build_pending(dummy_pending_step)
29
+ assert_match(%r{<div class="step_exception">}, actual)
30
+ assert_match(%r{<pre>No such step}, actual)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,27 @@
1
+ require 'helper'
2
+ require 'turnip_formatter/step_template/base'
3
+
4
+ module TurnipFormatter::StepTemplate
5
+ class TestSource < Test::Unit::TestCase
6
+ include TurnipFormatter::TestHelper
7
+
8
+ def setup
9
+ @backup_templates = TurnipFormatter.step_templates
10
+ TurnipFormatter.step_templates.clear
11
+
12
+ @template = TurnipFormatter::StepTemplate::Exception.new
13
+ end
14
+
15
+ def teardown
16
+ TurnipFormatter.step_templates.clear
17
+ @backup_templates.each do |t|
18
+ TurnipFormatter.step_templates << t
19
+ end
20
+ end
21
+
22
+ def test_build_failed
23
+ actual = @template.build_failed(dummy_failed_step)
24
+ assert_match(%r{<div class="step_exception">}, actual)
25
+ end
26
+ end
27
+ end
@@ -15,11 +15,10 @@ Gem::Specification.new do |spec|
15
15
 
16
16
  spec.files = `git ls-files`.split($/)
17
17
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
- spec.test_files = spec.files.grep(%r{^spec/})
18
+ spec.test_files = spec.files.grep(%r{^test/})
19
19
  spec.require_paths = ['lib']
20
20
 
21
- spec.add_dependency 'turnip', '~> 3.0.0.pre.beta.4'
22
- spec.add_dependency 'slim'
21
+ spec.add_dependency 'turnip', '~> 3.0.0'
23
22
  spec.add_dependency 'rspec', [">=3.3", "<3.5"]
24
23
 
25
24
  # For ruby >= 2.1
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.7
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Wataru MIYAGUNI
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-28 00:00:00.000000000 Z
11
+ date: 2017-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: turnip
@@ -16,28 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: 3.0.0.pre.beta.4
19
+ version: 3.0.0
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: 3.0.0.pre.beta.4
27
- - !ruby/object:Gem::Dependency
28
- name: slim
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - ">="
32
- - !ruby/object:Gem::Version
33
- version: '0'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - ">="
39
- - !ruby/object:Gem::Version
40
- version: '0'
26
+ version: 3.0.0
41
27
  - !ruby/object:Gem::Dependency
42
28
  name: rspec
43
29
  requirement: !ruby/object:Gem::Requirement
@@ -192,10 +178,8 @@ extensions: []
192
178
  extra_rdoc_files: []
193
179
  files:
194
180
  - ".gitignore"
195
- - ".rspec"
196
181
  - ".travis.yml"
197
182
  - Gemfile
198
- - Guardfile
199
183
  - LICENSE.txt
200
184
  - README.md
201
185
  - Rakefile
@@ -250,24 +234,15 @@ files:
250
234
  - lib/turnip_formatter/resource/scenario/failure.rb
251
235
  - lib/turnip_formatter/resource/scenario/pass.rb
252
236
  - lib/turnip_formatter/resource/scenario/pending.rb
253
- - lib/turnip_formatter/resource/step/base.rb
254
- - lib/turnip_formatter/resource/step/failure.rb
237
+ - lib/turnip_formatter/resource/step/failure_result.rb
255
238
  - lib/turnip_formatter/resource/step/hook.rb
256
- - lib/turnip_formatter/resource/step/pass.rb
257
- - lib/turnip_formatter/resource/step/pending.rb
258
- - lib/turnip_formatter/resource/step/unexecute.rb
239
+ - lib/turnip_formatter/resource/step/pending_result.rb
240
+ - lib/turnip_formatter/resource/step/step.rb
259
241
  - lib/turnip_formatter/step_template/base.rb
260
242
  - lib/turnip_formatter/step_template/exception.html.erb
261
243
  - lib/turnip_formatter/step_template/exception.rb
262
244
  - lib/turnip_formatter/template.rb
263
245
  - lib/turnip_formatter/version.rb
264
- - spec/spec_helper.rb
265
- - spec/support/example_helper.rb
266
- - spec/support/passed.feature
267
- - spec/support/step_helper.rb
268
- - spec/turnip_formatter/step_template/base_spec.rb
269
- - spec/turnip_formatter/step_template/exception_spec.rb
270
- - spec/turnip_formatter/step_template/source_spec.rb
271
246
  - test/helper.rb
272
247
  - test/turnip_formatter/renderer/html/test_data_table.rb
273
248
  - test/turnip_formatter/renderer/html/test_doc_string.rb
@@ -281,6 +256,9 @@ files:
281
256
  - test/turnip_formatter/resource/scenario/test_failure.rb
282
257
  - test/turnip_formatter/resource/scenario/test_pass.rb
283
258
  - test/turnip_formatter/resource/scenario/test_pending.rb
259
+ - test/turnip_formatter/step_template/test_base.rb
260
+ - test/turnip_formatter/step_template/test_exception.rb
261
+ - test/turnip_formatter/step_template/test_source.rb
284
262
  - turnip_formatter.gemspec
285
263
  homepage: https://github.com/gongo/turnip_formatter
286
264
  licenses:
@@ -297,9 +275,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
297
275
  version: '0'
298
276
  required_rubygems_version: !ruby/object:Gem::Requirement
299
277
  requirements:
300
- - - ">"
278
+ - - ">="
301
279
  - !ruby/object:Gem::Version
302
- version: 1.3.1
280
+ version: '0'
303
281
  requirements: []
304
282
  rubyforge_project:
305
283
  rubygems_version: 2.5.1
@@ -307,10 +285,19 @@ signing_key:
307
285
  specification_version: 4
308
286
  summary: RSpec custom formatter for Turnip
309
287
  test_files:
310
- - spec/spec_helper.rb
311
- - spec/support/example_helper.rb
312
- - spec/support/passed.feature
313
- - spec/support/step_helper.rb
314
- - spec/turnip_formatter/step_template/base_spec.rb
315
- - spec/turnip_formatter/step_template/exception_spec.rb
316
- - spec/turnip_formatter/step_template/source_spec.rb
288
+ - test/helper.rb
289
+ - test/turnip_formatter/renderer/html/test_data_table.rb
290
+ - test/turnip_formatter/renderer/html/test_doc_string.rb
291
+ - test/turnip_formatter/renderer/html/test_index.rb
292
+ - test/turnip_formatter/renderer/html/test_runtime_error.rb
293
+ - test/turnip_formatter/renderer/html/test_statistics_feature.rb
294
+ - test/turnip_formatter/renderer/html/test_statistics_speed.rb
295
+ - test/turnip_formatter/renderer/html/test_statistics_tag.rb
296
+ - test/turnip_formatter/renderer/html/test_step.rb
297
+ - test/turnip_formatter/renderer/test_html.rb
298
+ - test/turnip_formatter/resource/scenario/test_failure.rb
299
+ - test/turnip_formatter/resource/scenario/test_pass.rb
300
+ - test/turnip_formatter/resource/scenario/test_pending.rb
301
+ - test/turnip_formatter/step_template/test_base.rb
302
+ - test/turnip_formatter/step_template/test_exception.rb
303
+ - test/turnip_formatter/step_template/test_source.rb
data/.rspec DELETED
@@ -1 +0,0 @@
1
- --colour
data/Guardfile DELETED
@@ -1,9 +0,0 @@
1
- guard 'rspec' do
2
- watch(%r{^spec/.+_spec\.rb$})
3
- watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
4
- watch('spec/spec_helper.rb') { "spec" }
5
- end
6
-
7
- guard 'rspec', cli: '-r ./spec/examples/spec_helper' do
8
- watch('lib/turnip_formatter/formatter.css') { "spec/examples" }
9
- end
@@ -1,24 +0,0 @@
1
- require 'forwardable'
2
-
3
- module TurnipFormatter
4
- module Resource
5
- module Step
6
- class Base
7
- extend Forwardable
8
- def_delegators :@raw, :keyword, :text, :line, :argument
9
-
10
- attr_reader :example
11
- attr_accessor :status
12
-
13
- #
14
- # @param [RSpec::Core::Example] example
15
- # @param [Turnip::Node::Step] raw
16
- #
17
- def initialize(example, raw)
18
- @example = example
19
- @raw = raw
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,27 +0,0 @@
1
- require 'turnip_formatter/resource/step/base'
2
-
3
- module TurnipFormatter
4
- module Resource
5
- module Step
6
- class Failure < Base
7
- attr_reader :exceptions
8
-
9
- def initialize(example, raw)
10
- super
11
- @exceptions = []
12
- end
13
-
14
- def status
15
- :failed
16
- end
17
-
18
- #
19
- # @param [Array<Exception>] exceptions
20
- #
21
- def set_exceptions(exceptions)
22
- @exceptions = exceptions
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,13 +0,0 @@
1
- require 'turnip_formatter/resource/step/base'
2
-
3
- module TurnipFormatter
4
- module Resource
5
- module Step
6
- class Pass < Base
7
- def status
8
- :passed
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,21 +0,0 @@
1
- require 'turnip_formatter/resource/step/base'
2
-
3
- module TurnipFormatter
4
- module Resource
5
- module Step
6
- class Pending < Base
7
- def status
8
- :pending
9
- end
10
-
11
- def pending_message
12
- example.execution_result.pending_message
13
- end
14
-
15
- def pending_location
16
- example.location
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,13 +0,0 @@
1
- require 'forwardable'
2
-
3
- module TurnipFormatter
4
- module Resource
5
- module Step
6
- class Unexecute < Base
7
- def status
8
- :unexecute
9
- end
10
- end
11
- end
12
- end
13
- end
data/spec/spec_helper.rb DELETED
@@ -1,25 +0,0 @@
1
- if !defined?(JRUBY_VERSION)
2
- require 'simplecov'
3
- require 'coveralls'
4
-
5
- SimpleCov.formatter = Coveralls::SimpleCov::Formatter
6
- SimpleCov.start do
7
- add_filter 'spec/'
8
- add_filter 'vendor/'
9
- add_filter 'lib/turnip_formatter/ext'
10
- end
11
- end
12
-
13
- require 'turnip_formatter'
14
- Dir.glob(File.dirname(__FILE__) + '/support/**/*.rb') { |f| require(f) }
15
-
16
- class NoopObject
17
- def method_missing(name, *args, &block)
18
- # nooooooop
19
- end
20
- end
21
-
22
- RSpec.configure do |config|
23
- config.include ExampleHelper
24
- config.include StepHelper
25
- end
@@ -1,57 +0,0 @@
1
- module ExampleHelper
2
- def passed_example
3
- base_example { expect(true).to be true }
4
- end
5
-
6
- def failed_example
7
- base_example { expect(true).to be false }
8
- end
9
-
10
- def pending_example
11
- example = if ::RSpec::Version::STRING >= '2.99.0'
12
- base_example { skip('No such step(0): ') }
13
- else
14
- base_example { pending('No such step(0): ') }
15
- end
16
-
17
- # Turnip::Rspec::Execute#run_step
18
- example.metadata[:line_number] = 10
19
- example.metadata[:location] = "#{example.metadata[:file_path]}:10"
20
- example
21
- end
22
-
23
- def create_step_node(keyword, text, line)
24
- step_metadata = {
25
- type: :Step,
26
- location: { line: line, column: 1 },
27
- keyword: keyword,
28
- text: text,
29
- argument: nil
30
- }
31
-
32
- Turnip::Node::Step.new(step_metadata)
33
- end
34
-
35
- private
36
-
37
- def base_example(&assertion)
38
- group = ::RSpec::Core::ExampleGroup.describe('Feature').describe('Scenario')
39
- example = group.example('example', example_metadata, &assertion)
40
- example.metadata[:file_path] = '/path/to/hoge.feature'
41
-
42
- instance_eval <<-EOS, example.metadata[:file_path], 10
43
- group.run(NoopObject.new)
44
- EOS
45
-
46
- example
47
- end
48
-
49
- def example_metadata
50
- {
51
- turnip_formatter: {
52
- steps: [create_step_node('Step', 'Step 1', 1)],
53
- tags: []
54
- }
55
- }
56
- end
57
- end
@@ -1,4 +0,0 @@
1
- Feature: Passed Feature
2
- Scenario: Passed Scenario
3
- When I do pull request #3
4
- Then He had ignored my pull request #3
@@ -1,27 +0,0 @@
1
- require 'support/example_helper'
2
-
3
- module StepHelper
4
- include ExampleHelper
5
-
6
- def passed_step
7
- base_step(passed_example)
8
- end
9
-
10
- def failed_step
11
- base_step(failed_example).tap { |s| s.status = :failed }
12
- end
13
-
14
- def pending_step
15
- base_step(pending_example).tap { |s| s.status = :pending }
16
- end
17
-
18
- private
19
-
20
- def base_step(example)
21
- TurnipFormatter::Resource::Step.new(example, step_description)
22
- end
23
-
24
- def step_description
25
- create_step_node('Keyword', 'StepName', 1)
26
- end
27
- end
@@ -1,82 +0,0 @@
1
- require 'spec_helper'
2
- require 'turnip_formatter/step_template/exception'
3
-
4
- describe TurnipFormatter::StepTemplate::Base do
5
- before do
6
- @backup_templates = TurnipFormatter.step_templates
7
- TurnipFormatter.step_templates.clear
8
- end
9
-
10
- after do
11
- @backup_templates.each do |t|
12
- TurnipFormatter.step_templates << t
13
- end
14
- end
15
-
16
- context 'register step template' do
17
- before do
18
- Class.new(described_class) do
19
- on_passed :build_passed
20
- on_failed :build_failed1
21
- on_failed :build_failed2
22
- on_pending :build_pending
23
-
24
- def build_passed(_)
25
- 'build_passed'
26
- end
27
-
28
- def build_failed1(_)
29
- 'build_failed'
30
- end
31
-
32
- def build_failed2(_)
33
- 'hello_world'
34
- end
35
-
36
- def build_pending(_)
37
- 'build_pending'
38
- end
39
- end
40
- end
41
-
42
- after do
43
- TurnipFormatter.step_templates.pop
44
- end
45
-
46
- describe '.on_passed' do
47
- subject do
48
- TurnipFormatter.step_templates_for(:passed).map do |template, method|
49
- template.send(method, passed_example)
50
- end.join
51
- end
52
-
53
- it 'returns step document for passed' do
54
- should eq 'build_passed'
55
- end
56
- end
57
-
58
- describe '.on_failed' do
59
- subject do
60
- TurnipFormatter.step_templates_for(:failed).map do |template, method|
61
- template.send(method, failed_example)
62
- end.join
63
- end
64
-
65
- it 'returns step document for failed' do
66
- should eq 'build_failedhello_world'
67
- end
68
- end
69
-
70
- describe '.on_pending' do
71
- subject do
72
- TurnipFormatter.step_templates_for(:pending).map do |template, method|
73
- template.send(method, pending_example)
74
- end.join
75
- end
76
-
77
- it 'returns step document for failed' do
78
- should eq 'build_pending'
79
- end
80
- end
81
- end
82
- end
@@ -1,25 +0,0 @@
1
- require 'spec_helper'
2
- require 'turnip_formatter/step_template/exception'
3
-
4
- describe TurnipFormatter::StepTemplate::Exception do
5
- after do
6
- TurnipFormatter.step_templates.pop
7
- end
8
-
9
- let!(:template) do
10
- described_class.new
11
- end
12
-
13
- describe '#build_failed' do
14
- subject { template.build_failed(failed_example) }
15
-
16
- it { should match %r{<div class="step_exception">} }
17
- end
18
-
19
- describe '#build_pending' do
20
- subject { template.build_pending(pending_example) }
21
-
22
- it { should match %r{<div class="step_exception">} }
23
- it { should match %r{<pre>No such step} }
24
- end
25
- end
@@ -1,18 +0,0 @@
1
- require 'spec_helper'
2
- require 'turnip_formatter/step_template/source'
3
-
4
- describe TurnipFormatter::StepTemplate::Source do
5
- let(:template) do
6
- described_class.new
7
- end
8
-
9
- describe '#build' do
10
- subject { template.build(failed_example) }
11
-
12
- it do
13
- should match %r{<pre class="source">}
14
- should match %r{<code class="ruby">}
15
- should match %r{<span class="linenum">}
16
- end
17
- end
18
- end