turnip_formatter 0.6.0.pre.beta.4 → 0.6.0.pre.beta.5
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.
- checksums.yaml +4 -4
- data/.travis.yml +0 -2
- data/example/spec/features/argument.feature +15 -0
- data/example/spec/features/{battle2.feature → background.feature} +7 -4
- data/example/spec/features/{battle.feature → basic.feature} +7 -6
- data/example/spec/features/{battle3.feature → module_and_steps_for.feature} +0 -0
- data/example/spec/features/rspec_hooks.feature +22 -0
- data/example/spec/spec_helper.rb +10 -0
- data/example/spec/steps/steps.rb +4 -0
- data/lib/rspec/core/formatters/turnip_formatter.rb +3 -2
- data/lib/turnip_formatter/resource/hook.rb +30 -0
- data/lib/turnip_formatter/resource/scenario/failure.rb +71 -4
- data/lib/turnip_formatter/step_template/base.rb +2 -2
- data/lib/turnip_formatter/step_template/exception.rb +13 -7
- data/lib/turnip_formatter/step_template/source.rb +7 -1
- data/lib/turnip_formatter/version.rb +1 -1
- data/test/helper.rb +8 -0
- data/test/turnip_formatter/resource/scenario/test_failure.rb +79 -14
- data/turnip_formatter.gemspec +1 -1
- metadata +10 -9
- data/example/spec/features/songs.feature +0 -19
- data/gemfiles/Gemfile-rspec-3.2.x +0 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: baf4114e2e982e5788654b0cdd6f72d7a7a3af99
|
4
|
+
data.tar.gz: 0444ef49fdcc2d624319a8b5b40e783cc08c5a31
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f42fa830ffaf90f70ab06b8ce582a2499b0366381d04d1615a71c2ff732b571bd7b8bde4163e7cff15e88e2a7332838f231390ba1014658fd8b0cab7ff05c273
|
7
|
+
data.tar.gz: 0e0de0bae97e4fe1e7fe367ae8ae7721622e1f2b9b06fee8a610efbbb10e74386e314e11f1e3d7382a8fed387ee3c7d3319967e2ce6c209766a058552536662f
|
data/.travis.yml
CHANGED
@@ -10,7 +10,6 @@ branches:
|
|
10
10
|
|
11
11
|
matrix:
|
12
12
|
allow_failures:
|
13
|
-
- gemfile: gemfiles/Gemfile-rspec-3.2.x
|
14
13
|
- rvm: ruby-head
|
15
14
|
|
16
15
|
rvm:
|
@@ -24,6 +23,5 @@ script:
|
|
24
23
|
- bundle exec rake test
|
25
24
|
|
26
25
|
gemfile:
|
27
|
-
- gemfiles/Gemfile-rspec-3.2.x
|
28
26
|
- gemfiles/Gemfile-rspec-3.3.x
|
29
27
|
- gemfiles/Gemfile-rspec-3.4.x
|
@@ -0,0 +1,15 @@
|
|
1
|
+
Feature: A feature with argument
|
2
|
+
Scenario: This is a feature with DocString
|
3
|
+
When the monster sings the following song
|
4
|
+
"""
|
5
|
+
Oh here be monsters
|
6
|
+
This is cool
|
7
|
+
"""
|
8
|
+
Then the song should have 2 lines
|
9
|
+
|
10
|
+
Scenario: This is a feature with DocTable
|
11
|
+
When there are monsters:
|
12
|
+
| gargoyle |
|
13
|
+
| Cockatrice |
|
14
|
+
Then there should be 2 monsters
|
15
|
+
|
@@ -10,15 +10,18 @@ Feature: Battle a monster with weapon
|
|
10
10
|
And Fanfare
|
11
11
|
|
12
12
|
Scenario: strong monster
|
13
|
+
|
14
|
+
His attacks can defeat strong monster if has weapon.
|
15
|
+
|
13
16
|
Given there is a strong monster
|
14
17
|
When I attack it
|
15
18
|
Then it should die
|
16
19
|
And Fanfare
|
17
|
-
|
18
|
-
Scenario: boss monster
|
19
20
|
|
20
|
-
|
21
|
-
|
21
|
+
Scenario: [ERROR] boss monster
|
22
|
+
|
23
|
+
This scenario will not success.
|
24
|
+
Because his attacks can't defeat boss monster even if has weapon.
|
22
25
|
|
23
26
|
Given there is a boss monster
|
24
27
|
When I attack it
|
@@ -6,19 +6,18 @@ Feature: Battle a monster
|
|
6
6
|
Then it should die
|
7
7
|
And Fanfare
|
8
8
|
|
9
|
-
Scenario: strong monster
|
9
|
+
Scenario: [ERROR] strong monster
|
10
10
|
|
11
|
-
This scenario will
|
12
|
-
So, fanfare is not...oh...
|
11
|
+
This scenario will not success because his attacks can't defeat strong monster
|
13
12
|
|
14
13
|
Given there is a strong monster
|
15
14
|
When I attack it
|
16
15
|
Then it should die
|
17
16
|
And Fanfare
|
18
17
|
|
19
|
-
Scenario: spell magic
|
18
|
+
Scenario: [PENDING] spell magic
|
20
19
|
|
21
|
-
This scenario will
|
20
|
+
This scenario will not success because he can't cast spell
|
22
21
|
|
23
22
|
Given there is a strong monster
|
24
23
|
When I cast a spell 'fireball'
|
@@ -27,7 +26,9 @@ Feature: Battle a monster
|
|
27
26
|
And Fanfare
|
28
27
|
|
29
28
|
@magician
|
30
|
-
Scenario: spell magic
|
29
|
+
Scenario: spell magic
|
30
|
+
|
31
|
+
`magician` can cast spell.
|
31
32
|
|
32
33
|
Given there is a strong monster
|
33
34
|
When I cast a spell 'fireball'
|
File without changes
|
@@ -0,0 +1,22 @@
|
|
1
|
+
Feature: Battle a monster with hooks
|
2
|
+
|
3
|
+
@before_hook_error
|
4
|
+
Scenario: [ERROR] Error in before hook
|
5
|
+
Given there is a monster
|
6
|
+
When I attack it
|
7
|
+
Then it should die
|
8
|
+
And Fanfare
|
9
|
+
|
10
|
+
@after_hook_error
|
11
|
+
Scenario: [ERROR] Error in after hook
|
12
|
+
Given there is a monster
|
13
|
+
When I attack it
|
14
|
+
Then it should die
|
15
|
+
And Fanfare
|
16
|
+
|
17
|
+
@after_hook_error
|
18
|
+
Scenario: [ERROR] Error in steps and after hook
|
19
|
+
Given there is a strong monster
|
20
|
+
When I attack it
|
21
|
+
Then it should die
|
22
|
+
And Fanfare
|
data/example/spec/spec_helper.rb
CHANGED
@@ -6,6 +6,16 @@ end
|
|
6
6
|
|
7
7
|
Dir.glob(File.dirname(__FILE__) + '/steps/**/*steps.rb') { |f| load f, true }
|
8
8
|
|
9
|
+
RSpec.configure do |config|
|
10
|
+
config.before(:example, before_hook_error: true) do
|
11
|
+
undefined_method # NameError
|
12
|
+
end
|
13
|
+
|
14
|
+
config.after(:example, after_hook_error: true) do
|
15
|
+
expect(true).to be false # RSpec Matcher Error
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
9
19
|
# TurnipFormatter.configure do |config|
|
10
20
|
# config.title = 'My Report'
|
11
21
|
# config.add_stylesheet File.dirname(__FILE__) + '/foo.css'
|
data/example/spec/steps/steps.rb
CHANGED
@@ -32,6 +32,10 @@ step "there are monsters:" do |monsters|
|
|
32
32
|
@monsters = monsters.map { |row| row[0] }
|
33
33
|
end
|
34
34
|
|
35
|
+
step "there should be :count monsters" do |count|
|
36
|
+
@monsters.length.should eq(count.to_i)
|
37
|
+
end
|
38
|
+
|
35
39
|
step "the monster sings the following song" do |song|
|
36
40
|
@song = song
|
37
41
|
end
|
@@ -15,9 +15,10 @@ module RSpec
|
|
15
15
|
|
16
16
|
Formatters.register self, :example_passed, :example_pending, :example_failed, :dump_summary
|
17
17
|
|
18
|
-
def self.formatted_backtrace(example)
|
18
|
+
def self.formatted_backtrace(example, exception = nil)
|
19
|
+
exception = example.exception if exception.nil?
|
19
20
|
formatter = RSpec.configuration.backtrace_formatter
|
20
|
-
formatter.format_backtrace(
|
21
|
+
formatter.format_backtrace(exception.backtrace, example.metadata)
|
21
22
|
end
|
22
23
|
|
23
24
|
def initialize(output)
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module TurnipFormatter
|
2
|
+
module Resource
|
3
|
+
class Hook
|
4
|
+
attr_reader :example
|
5
|
+
attr_reader :keyword
|
6
|
+
attr_reader :status
|
7
|
+
|
8
|
+
#
|
9
|
+
# @param [RSpec::Core::Example] example
|
10
|
+
#
|
11
|
+
def initialize(example, keyword, status)
|
12
|
+
@example = example
|
13
|
+
@keyword = keyword
|
14
|
+
@status = status
|
15
|
+
end
|
16
|
+
|
17
|
+
def text
|
18
|
+
''
|
19
|
+
end
|
20
|
+
|
21
|
+
def line
|
22
|
+
-1
|
23
|
+
end
|
24
|
+
|
25
|
+
def argument
|
26
|
+
nil
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -1,9 +1,12 @@
|
|
1
1
|
require 'turnip_formatter/resource/scenario/base'
|
2
|
+
require 'turnip_formatter/resource/hook'
|
2
3
|
|
3
4
|
module TurnipFormatter
|
4
5
|
module Resource
|
5
6
|
module Scenario
|
6
7
|
class Failure < Base
|
8
|
+
alias :super_steps :steps
|
9
|
+
|
7
10
|
#
|
8
11
|
# Return steps
|
9
12
|
#
|
@@ -19,11 +22,40 @@ module TurnipFormatter
|
|
19
22
|
# #<Step 'baz'>.status = :failed
|
20
23
|
# #<Step 'piyo'>.status = :unexecute
|
21
24
|
#
|
25
|
+
# @TODO Correspond to multiple errors.
|
26
|
+
#
|
27
|
+
# example:
|
22
28
|
#
|
23
|
-
#
|
29
|
+
# # foo.feature
|
30
|
+
# @after_hook
|
31
|
+
# When foo
|
32
|
+
# And bar <= failed line
|
33
|
+
# Then baz
|
34
|
+
#
|
35
|
+
# # spec_helper.rb
|
36
|
+
# RSpec.configure do |config|
|
37
|
+
# config.after(:example, after_hook: true) do
|
38
|
+
# raise RuntimeError
|
39
|
+
# end
|
40
|
+
# end
|
41
|
+
#
|
42
|
+
# Currently, display only first error (`And bar`).
|
24
43
|
#
|
25
44
|
def steps
|
26
|
-
|
45
|
+
case
|
46
|
+
when error_in_steps?
|
47
|
+
steps_with_error
|
48
|
+
when error_in_before_hook?
|
49
|
+
steps_with_error_in_before_hook
|
50
|
+
when error_in_after_hook?
|
51
|
+
steps_with_error_in_after_hook
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
private
|
56
|
+
|
57
|
+
def steps_with_error
|
58
|
+
steps = super_steps
|
27
59
|
|
28
60
|
arys = steps.group_by { |s| (s.line <=> failed_line_number).to_s }
|
29
61
|
arys['-1'].each { |s| s.status = :passed } unless arys['-1'].nil?
|
@@ -33,17 +65,52 @@ module TurnipFormatter
|
|
33
65
|
steps
|
34
66
|
end
|
35
67
|
|
36
|
-
|
68
|
+
def steps_with_error_in_before_hook
|
69
|
+
steps = super_steps
|
70
|
+
|
71
|
+
steps.each { |s| s.status = :unexecute }
|
72
|
+
[TurnipFormatter::Resource::Hook.new(example, 'BeforeHook', :failed)] + steps
|
73
|
+
end
|
74
|
+
|
75
|
+
def steps_with_error_in_after_hook
|
76
|
+
super_steps + [TurnipFormatter::Resource::Hook.new(example, 'AfterHook', :failed)]
|
77
|
+
end
|
78
|
+
|
79
|
+
def error_in_steps?
|
80
|
+
!failed_line_number.nil?
|
81
|
+
end
|
82
|
+
|
83
|
+
def error_in_before_hook?
|
84
|
+
exception.backtrace.any? do |backtrace|
|
85
|
+
backtrace.match(/run_before_example/)
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
def error_in_after_hook?
|
90
|
+
exception.backtrace.any? do |backtrace|
|
91
|
+
backtrace.match(/run_after_example/)
|
92
|
+
end
|
93
|
+
end
|
37
94
|
|
38
95
|
def failed_line_number
|
39
96
|
@failed_line_number ||= (
|
40
97
|
filepath = File.basename(feature_file_path)
|
41
|
-
line =
|
98
|
+
line = exception.backtrace.find do |backtrace|
|
42
99
|
backtrace.match(/#{filepath}:(\d+)/)
|
43
100
|
end
|
44
101
|
Regexp.last_match[1].to_i if line
|
45
102
|
)
|
46
103
|
end
|
104
|
+
|
105
|
+
def exception
|
106
|
+
@exception ||= (
|
107
|
+
if example.exception.is_a?(RSpec::Core::MultipleExceptionError)
|
108
|
+
example.exception.all_exceptions.first
|
109
|
+
else
|
110
|
+
example.exception
|
111
|
+
end
|
112
|
+
)
|
113
|
+
end
|
47
114
|
end
|
48
115
|
end
|
49
116
|
end
|
@@ -30,8 +30,8 @@ module TurnipFormatter
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
|
-
def formatted_backtrace(example)
|
34
|
-
RSpec::Core::Formatters::TurnipFormatter.formatted_backtrace(example)
|
33
|
+
def formatted_backtrace(example, exception = nil)
|
34
|
+
RSpec::Core::Formatters::TurnipFormatter.formatted_backtrace(example, exception)
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
@@ -28,7 +28,13 @@ module TurnipFormatter
|
|
28
28
|
# @param [RSpec::Core::Example] example
|
29
29
|
#
|
30
30
|
def build_failed(example)
|
31
|
-
|
31
|
+
exception = example.exception
|
32
|
+
|
33
|
+
if example.exception.is_a?(RSpec::Core::MultipleExceptionError)
|
34
|
+
exception = example.exception.all_exceptions.first
|
35
|
+
end
|
36
|
+
|
37
|
+
build(exception.to_s, formatted_backtrace(example, exception))
|
32
38
|
end
|
33
39
|
|
34
40
|
#
|
@@ -40,13 +46,13 @@ module TurnipFormatter
|
|
40
46
|
|
41
47
|
private
|
42
48
|
|
43
|
-
|
44
|
-
|
45
|
-
|
49
|
+
def build(message, backtrace)
|
50
|
+
template_step_exception.render(Object.new, { message: message, backtrace: backtrace })
|
51
|
+
end
|
46
52
|
|
47
|
-
|
48
|
-
|
49
|
-
|
53
|
+
def template_step_exception
|
54
|
+
@template_step_exception ||= Slim::Template.new(File.dirname(__FILE__) + "/exception.slim")
|
55
|
+
end
|
50
56
|
end
|
51
57
|
end
|
52
58
|
end
|
@@ -38,7 +38,13 @@ module TurnipFormatter
|
|
38
38
|
private
|
39
39
|
|
40
40
|
def location(example)
|
41
|
-
|
41
|
+
exception = example.exception
|
42
|
+
|
43
|
+
if example.exception.is_a?(RSpec::Core::MultipleExceptionError)
|
44
|
+
exception = example.exception.all_exceptions.first
|
45
|
+
end
|
46
|
+
|
47
|
+
formatted_backtrace(example, exception).first
|
42
48
|
end
|
43
49
|
|
44
50
|
def extractor
|
data/test/helper.rb
CHANGED
@@ -71,6 +71,14 @@ module TurnipFormatter
|
|
71
71
|
rspec_context.include(Turnip::RSpec::Execute)
|
72
72
|
rspec_context.include(ExecuteWrapper)
|
73
73
|
|
74
|
+
rspec_context.before(:example, before_hook_error: true) do
|
75
|
+
undefined_method # NameError
|
76
|
+
end
|
77
|
+
|
78
|
+
rspec_context.after(:example, after_hook_error: true) do
|
79
|
+
expect(true).to be false # RSpec Matcher Error
|
80
|
+
end
|
81
|
+
|
74
82
|
Turnip::RSpec.__send__(:run_feature, rspec_context, feature, filename)
|
75
83
|
rspec_context.run(NoopObject.new)
|
76
84
|
Turnip::RSpec.update_metadata(feature, rspec_context)
|
@@ -5,35 +5,100 @@ module TurnipFormatter::Resource::Scenario
|
|
5
5
|
class TestFailure < Test::Unit::TestCase
|
6
6
|
include TurnipFormatter::TestHelper
|
7
7
|
|
8
|
-
def setup
|
9
|
-
@resource = Failure.new(scenario_example)
|
10
|
-
end
|
11
|
-
|
12
8
|
def test_status
|
9
|
+
@resource = Failure.new(scenario_example)
|
13
10
|
assert_equal(:failed, @resource.status)
|
14
11
|
end
|
15
12
|
|
16
13
|
def test_steps
|
14
|
+
@resource = Failure.new(scenario_example)
|
15
|
+
|
17
16
|
expect = [:passed, :failed, :unexecute]
|
18
17
|
actual = @resource.steps.map(&:status)
|
19
18
|
|
20
19
|
assert_equal(expect, actual)
|
21
20
|
end
|
22
21
|
|
22
|
+
def test_steps_has_error_in_before_hook
|
23
|
+
@resource = Failure.new(scenario_error_before_hook)
|
24
|
+
|
25
|
+
expect = [:failed, :unexecute, :unexecute]
|
26
|
+
actual = @resource.steps.map(&:status)
|
27
|
+
|
28
|
+
assert_equal(expect, actual)
|
29
|
+
assert_equal(TurnipFormatter::Resource::Hook, @resource.steps.first.class)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_steps_has_error_in_after_hook
|
33
|
+
@resource = Failure.new(scenario_error_after_hook)
|
34
|
+
|
35
|
+
expect = [:passed, :passed, :failed]
|
36
|
+
actual = @resource.steps.map(&:status)
|
37
|
+
|
38
|
+
assert_equal(expect, actual)
|
39
|
+
assert_equal(TurnipFormatter::Resource::Hook, @resource.steps.last.class)
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_steps_has_error_in_steps_and_after_hook
|
43
|
+
@resource = Failure.new(scenario_error_step_and_after_hook)
|
44
|
+
|
45
|
+
expect = [:passed, :failed, :unexecute]
|
46
|
+
actual = @resource.steps.map(&:status)
|
47
|
+
|
48
|
+
assert_equal(expect, actual)
|
49
|
+
assert_equal(TurnipFormatter::Resource::Step, @resource.steps.last.class)
|
50
|
+
end
|
51
|
+
|
23
52
|
private
|
24
53
|
|
25
54
|
def scenario_example
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
55
|
+
scenario_examples[0]
|
56
|
+
end
|
57
|
+
|
58
|
+
def scenario_error_before_hook
|
59
|
+
scenario_examples[1]
|
60
|
+
end
|
61
|
+
|
62
|
+
def scenario_error_after_hook
|
63
|
+
scenario_examples[2]
|
64
|
+
end
|
65
|
+
|
66
|
+
def scenario_error_step_and_after_hook
|
67
|
+
scenario_examples[3]
|
68
|
+
end
|
69
|
+
|
70
|
+
def scenario_examples
|
71
|
+
@@scenario_examples ||= (
|
72
|
+
feature = feature_build(feature_text)
|
73
|
+
run_feature(feature, '/path/to/test.feature')
|
36
74
|
)
|
37
75
|
end
|
76
|
+
|
77
|
+
def feature_text
|
78
|
+
<<-EOS
|
79
|
+
Feature: A simple feature
|
80
|
+
Scenario: This is a simple feature
|
81
|
+
When I attack it
|
82
|
+
Then [ERROR] it should die
|
83
|
+
And I get drop items
|
84
|
+
|
85
|
+
@before_hook_error
|
86
|
+
Scenario: Error in before hook
|
87
|
+
When I attack it
|
88
|
+
Then it should die
|
89
|
+
|
90
|
+
@after_hook_error
|
91
|
+
Scenario: Error in after hook
|
92
|
+
When I attack it
|
93
|
+
Then it should die
|
94
|
+
|
95
|
+
@after_hook_error
|
96
|
+
Scenario: Error in after hook
|
97
|
+
When I attack it
|
98
|
+
Then [ERROR] it should die
|
99
|
+
And I get drop items
|
100
|
+
|
101
|
+
EOS
|
102
|
+
end
|
38
103
|
end
|
39
104
|
end
|
data/turnip_formatter.gemspec
CHANGED
@@ -20,7 +20,7 @@ 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 'rspec', [">=3.
|
23
|
+
spec.add_dependency 'rspec', [">=3.3", "<3.5"]
|
24
24
|
|
25
25
|
# For ruby >= 2.1
|
26
26
|
spec.add_dependency 'activesupport', '~> 4.2.7'
|
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.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Wataru MIYAGUNI
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-01-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: turnip
|
@@ -44,7 +44,7 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '3.
|
47
|
+
version: '3.3'
|
48
48
|
- - "<"
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '3.5'
|
@@ -54,7 +54,7 @@ dependencies:
|
|
54
54
|
requirements:
|
55
55
|
- - ">="
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: '3.
|
57
|
+
version: '3.3'
|
58
58
|
- - "<"
|
59
59
|
- !ruby/object:Gem::Version
|
60
60
|
version: '3.5'
|
@@ -208,16 +208,16 @@ files:
|
|
208
208
|
- example/images/outline.png
|
209
209
|
- example/images/pending_step.png
|
210
210
|
- example/spec/bar.js
|
211
|
-
- example/spec/features/
|
212
|
-
- example/spec/features/
|
213
|
-
- example/spec/features/
|
214
|
-
- example/spec/features/
|
211
|
+
- example/spec/features/argument.feature
|
212
|
+
- example/spec/features/background.feature
|
213
|
+
- example/spec/features/basic.feature
|
214
|
+
- example/spec/features/module_and_steps_for.feature
|
215
|
+
- example/spec/features/rspec_hooks.feature
|
215
216
|
- example/spec/foo.css
|
216
217
|
- example/spec/spec_helper.rb
|
217
218
|
- example/spec/steps/escape_steps.rb
|
218
219
|
- example/spec/steps/spell_steps.rb
|
219
220
|
- example/spec/steps/steps.rb
|
220
|
-
- gemfiles/Gemfile-rspec-3.2.x
|
221
221
|
- gemfiles/Gemfile-rspec-3.3.x
|
222
222
|
- gemfiles/Gemfile-rspec-3.4.x
|
223
223
|
- lib/rspec/core/formatters/turnip_formatter.rb
|
@@ -246,6 +246,7 @@ files:
|
|
246
246
|
- lib/turnip_formatter/renderer/html/views/statistics_speed.html.erb
|
247
247
|
- lib/turnip_formatter/renderer/html/views/statistics_tag.html.erb
|
248
248
|
- lib/turnip_formatter/renderer/html/views/step.html.erb
|
249
|
+
- lib/turnip_formatter/resource/hook.rb
|
249
250
|
- lib/turnip_formatter/resource/scenario/base.rb
|
250
251
|
- lib/turnip_formatter/resource/scenario/failure.rb
|
251
252
|
- lib/turnip_formatter/resource/scenario/pass.rb
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# Based on turnip/examples
|
2
|
-
|
3
|
-
Feature: A feature with multiline strings
|
4
|
-
Scenario: This is a feature with multiline strings
|
5
|
-
When the monster sings the following song
|
6
|
-
"""
|
7
|
-
Oh here be monsters
|
8
|
-
This is cool
|
9
|
-
"""
|
10
|
-
Then the song should have 2 lines
|
11
|
-
|
12
|
-
Scenario: This is a feature with multiline strings
|
13
|
-
When a monster sings the following song
|
14
|
-
"""
|
15
|
-
Oh here be monsters
|
16
|
-
This is cool
|
17
|
-
"""
|
18
|
-
Then the song should have 2 lines
|
19
|
-
|