rspec-core 2.12.2 → 2.13.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.
- data/Changelog.md +31 -0
- data/README.md +11 -10
- data/features/command_line/example_name_option.feature +6 -10
- data/features/command_line/tag.feature +15 -8
- data/features/configuration/backtrace_clean_patterns.feature +102 -0
- data/features/configuration/failure_exit_code.feature +36 -0
- data/features/configuration/order_and_seed.feature +3 -0
- data/features/configuration/output_stream.feature +24 -0
- data/features/configuration/pattern.feature +30 -0
- data/features/configuration/profile.feature +163 -0
- data/features/configuration/run_all_when_everything_filtered.feature +60 -0
- data/features/configuration/show_failures_in_pending_blocks.feature +61 -0
- data/features/configuration/treat_symbols_as_metadata_keys_with_true_values.feature +52 -0
- data/features/filtering/exclusion_filters.feature +1 -2
- data/features/formatters/configurable_colors.feature +31 -0
- data/features/step_definitions/additional_cli_steps.rb +21 -0
- data/features/subject/explicit_subject.feature +19 -0
- data/lib/autotest/rspec2.rb +1 -1
- data/lib/rspec/core.rb +1 -2
- data/lib/rspec/core/configuration.rb +33 -3
- data/lib/rspec/core/configuration_options.rb +5 -5
- data/lib/rspec/core/deprecation.rb +1 -1
- data/lib/rspec/core/example.rb +2 -2
- data/lib/rspec/core/example_group.rb +1 -3
- data/lib/rspec/core/formatters/base_text_formatter.rb +93 -27
- data/lib/rspec/core/formatters/documentation_formatter.rb +3 -3
- data/lib/rspec/core/formatters/progress_formatter.rb +3 -3
- data/lib/rspec/core/memoized_helpers.rb +425 -0
- data/lib/rspec/core/metadata.rb +6 -2
- data/lib/rspec/core/option_parser.rb +8 -2
- data/lib/rspec/core/pending.rb +7 -0
- data/lib/rspec/core/shared_context.rb +1 -1
- data/lib/rspec/core/version.rb +1 -1
- data/spec/autotest/failed_results_re_spec.rb +4 -4
- data/spec/autotest/rspec_spec.rb +25 -20
- data/spec/command_line/order_spec.rb +21 -21
- data/spec/rspec/core/command_line_spec.rb +6 -6
- data/spec/rspec/core/configuration_options_spec.rb +86 -72
- data/spec/rspec/core/configuration_spec.rb +161 -156
- data/spec/rspec/core/deprecations_spec.rb +4 -4
- data/spec/rspec/core/drb_command_line_spec.rb +9 -9
- data/spec/rspec/core/drb_options_spec.rb +46 -33
- data/spec/rspec/core/dsl_spec.rb +3 -3
- data/spec/rspec/core/example_group_spec.rb +156 -124
- data/spec/rspec/core/example_spec.rb +68 -52
- data/spec/rspec/core/filter_manager_spec.rb +36 -36
- data/spec/rspec/core/formatters/base_formatter_spec.rb +9 -9
- data/spec/rspec/core/formatters/base_text_formatter_spec.rb +104 -42
- data/spec/rspec/core/formatters/documentation_formatter_spec.rb +4 -4
- data/spec/rspec/core/formatters/helpers_spec.rb +13 -13
- data/spec/rspec/core/formatters/html_formatted-1.8.7-jruby.html +5 -17
- data/spec/rspec/core/formatters/html_formatted-1.8.7-rbx.html +159 -44
- data/spec/rspec/core/formatters/html_formatted-1.8.7.html +14 -14
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +20 -20
- data/spec/rspec/core/formatters/html_formatted-1.9.3-jruby.html +5 -5
- data/spec/rspec/core/formatters/html_formatted-1.9.3-rbx.html +159 -44
- data/spec/rspec/core/formatters/html_formatted-1.9.3.html +20 -20
- data/spec/rspec/core/formatters/{html_formatted-1.9.2-jruby.html → html_formatted-2.0.0.html} +24 -18
- data/spec/rspec/core/formatters/html_formatter_spec.rb +9 -5
- data/spec/rspec/core/formatters/json_formatter_spec.rb +9 -9
- data/spec/rspec/core/formatters/progress_formatter_spec.rb +4 -4
- data/spec/rspec/core/formatters/snippet_extractor_spec.rb +3 -3
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7-jruby.html +5 -17
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7-rbx.html +159 -44
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +16 -16
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +23 -23
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.3-jruby.html +5 -17
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.3-rbx.html +159 -44
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.3.html +23 -23
- data/spec/rspec/core/formatters/{text_mate_formatted-1.9.2-jruby.html → text_mate_formatted-2.0.0.html} +25 -19
- data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +8 -4
- data/spec/rspec/core/hooks_filtering_spec.rb +16 -16
- data/spec/rspec/core/hooks_spec.rb +11 -11
- data/spec/rspec/core/kernel_extensions_spec.rb +1 -1
- data/spec/rspec/core/memoized_helpers_spec.rb +458 -0
- data/spec/rspec/core/metadata_spec.rb +74 -74
- data/spec/rspec/core/option_parser_spec.rb +27 -27
- data/spec/rspec/core/pending_example_spec.rb +32 -32
- data/spec/rspec/core/project_initializer_spec.rb +8 -8
- data/spec/rspec/core/rake_task_spec.rb +16 -16
- data/spec/rspec/core/reporter_spec.rb +3 -3
- data/spec/rspec/core/resources/formatter_specs.rb +4 -4
- data/spec/rspec/core/ruby_project_spec.rb +4 -2
- data/spec/rspec/core/shared_context_spec.rb +34 -7
- data/spec/rspec/core/shared_example_group_spec.rb +14 -14
- data/spec/rspec/core/world_spec.rb +9 -9
- data/spec/rspec/core_spec.rb +5 -5
- data/spec/spec_helper.rb +4 -0
- data/spec/support/shared_example_groups.rb +4 -4
- data/spec/support/spec_files.rb +2 -2
- metadata +158 -150
- data/lib/rspec/core/let.rb +0 -110
- data/lib/rspec/core/subject.rb +0 -223
- data/spec/rspec/core/let_spec.rb +0 -55
- data/spec/rspec/core/subject_spec.rb +0 -255
|
@@ -8,13 +8,13 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
|
8
8
|
|
|
9
9
|
describe "backtrace_line" do
|
|
10
10
|
it "trims current working directory" do
|
|
11
|
-
formatter.__send__(:backtrace_line, File.expand_path(__FILE__)).
|
|
11
|
+
expect(formatter.__send__(:backtrace_line, File.expand_path(__FILE__))).to eq("./spec/rspec/core/formatters/base_formatter_spec.rb")
|
|
12
12
|
end
|
|
13
13
|
|
|
14
14
|
it "leaves the original line intact" do
|
|
15
15
|
original_line = File.expand_path(__FILE__)
|
|
16
16
|
formatter.__send__(:backtrace_line, original_line)
|
|
17
|
-
original_line.
|
|
17
|
+
expect(original_line).to eq(File.expand_path(__FILE__))
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
it "deals gracefully with a security error" do
|
|
@@ -35,18 +35,18 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
|
35
35
|
"/some/line/of/ruby.rb:14"
|
|
36
36
|
])
|
|
37
37
|
example = mock(:Example, :file_path => __FILE__)
|
|
38
|
-
|
|
38
|
+
expect {
|
|
39
39
|
formatter.send(:read_failed_line, exception, example)
|
|
40
|
-
}.
|
|
40
|
+
}.not_to raise_error
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
it "deals gracefully with a security error" do
|
|
44
44
|
exception = mock(:Exception, :backtrace => [ "#{__FILE__}:#{__LINE__}"])
|
|
45
45
|
example = mock(:Example, :file_path => __FILE__)
|
|
46
46
|
safely do
|
|
47
|
-
|
|
47
|
+
expect {
|
|
48
48
|
formatter.send(:read_failed_line, exception, example)
|
|
49
|
-
}.
|
|
49
|
+
}.not_to raise_error
|
|
50
50
|
end
|
|
51
51
|
end
|
|
52
52
|
|
|
@@ -78,8 +78,8 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
|
78
78
|
exception = mock(:Exception, :backtrace => [ "#{__FILE__}:#{__LINE__}"])
|
|
79
79
|
|
|
80
80
|
example = mock(:Example, :file_path => __FILE__)
|
|
81
|
-
formatter.send(:read_failed_line, exception, example).
|
|
82
|
-
|
|
81
|
+
expect(formatter.send(:read_failed_line, exception, example)).to eql(
|
|
82
|
+
%Q{ exception = mock(:Exception, :backtrace => [ "\#{__FILE__}:\#{__LINE__}"])\n})
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
end
|
|
@@ -101,7 +101,7 @@ describe RSpec::Core::Formatters::BaseFormatter do
|
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
it "removes lines from rspec and lines that come before the invocation of the at_exit autorun hook" do
|
|
104
|
-
formatter.format_backtrace(backtrace, stub.as_null_object).
|
|
104
|
+
expect(formatter.format_backtrace(backtrace, stub.as_null_object)).to eq(["./my_spec.rb:5"])
|
|
105
105
|
end
|
|
106
106
|
end
|
|
107
107
|
|
|
@@ -7,15 +7,15 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
7
7
|
|
|
8
8
|
describe "#summary_line" do
|
|
9
9
|
it "with 0s outputs pluralized (excluding pending)" do
|
|
10
|
-
formatter.summary_line(0,0,0).
|
|
10
|
+
expect(formatter.summary_line(0,0,0)).to eq("0 examples, 0 failures")
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "with 1s outputs singular (including pending)" do
|
|
14
|
-
formatter.summary_line(1,1,1).
|
|
14
|
+
expect(formatter.summary_line(1,1,1)).to eq("1 example, 1 failure, 1 pending")
|
|
15
15
|
end
|
|
16
16
|
|
|
17
17
|
it "with 2s outputs pluralized (including pending)" do
|
|
18
|
-
formatter.summary_line(2,2,2).
|
|
18
|
+
expect(formatter.summary_line(2,2,2)).to eq("2 examples, 2 failures, 2 pending")
|
|
19
19
|
end
|
|
20
20
|
end
|
|
21
21
|
|
|
@@ -27,7 +27,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
27
27
|
line = __LINE__ - 2
|
|
28
28
|
group.run(formatter)
|
|
29
29
|
formatter.dump_commands_to_rerun_failed_examples
|
|
30
|
-
output.string.
|
|
30
|
+
expect(output.string).to include("rspec #{RSpec::Core::Metadata::relative_path("#{__FILE__}:#{line}")} # example group fails")
|
|
31
31
|
end
|
|
32
32
|
end
|
|
33
33
|
|
|
@@ -42,12 +42,12 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
it "preserves formatting" do
|
|
45
|
-
group.example("example name") { "this".
|
|
45
|
+
group.example("example name") { expect("this").to eq("that") }
|
|
46
46
|
|
|
47
47
|
run_all_and_dump_failures
|
|
48
48
|
|
|
49
|
-
output.string.
|
|
50
|
-
output.string.
|
|
49
|
+
expect(output.string).to match /group name example name/m
|
|
50
|
+
expect(output.string).to match /(\s+)expected: \"that\"\n\1 got: \"this\"/m
|
|
51
51
|
end
|
|
52
52
|
|
|
53
53
|
context "with an exception without a message" do
|
|
@@ -61,7 +61,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
61
61
|
it "preserves ancestry" do
|
|
62
62
|
example = group.example("example name") { raise "something" }
|
|
63
63
|
run_all_and_dump_failures
|
|
64
|
-
example.example_group.parent_groups.size.
|
|
64
|
+
expect(example.example_group.parent_groups.size).to eq 1
|
|
65
65
|
end
|
|
66
66
|
end
|
|
67
67
|
|
|
@@ -74,19 +74,28 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
+
context "with an instance of an anonymous exception class" do
|
|
78
|
+
it "substitutes '(anonymous error class)' for the missing class name" do
|
|
79
|
+
exception = Class.new(StandardError).new
|
|
80
|
+
group.example("example name") { raise exception }
|
|
81
|
+
run_all_and_dump_failures
|
|
82
|
+
expect(output.string).to include('(anonymous error class)')
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
|
|
77
86
|
context "with an exception class other than RSpec" do
|
|
78
87
|
it "does not show the error class" do
|
|
79
88
|
group.example("example name") { raise NameError.new('foo') }
|
|
80
89
|
run_all_and_dump_failures
|
|
81
|
-
output.string.
|
|
90
|
+
expect(output.string).to match /NameError/m
|
|
82
91
|
end
|
|
83
92
|
end
|
|
84
93
|
|
|
85
94
|
context "with a failed expectation (rspec-expectations)" do
|
|
86
95
|
it "does not show the error class" do
|
|
87
|
-
group.example("example name") { "this".
|
|
96
|
+
group.example("example name") { expect("this").to eq("that") }
|
|
88
97
|
run_all_and_dump_failures
|
|
89
|
-
output.string.
|
|
98
|
+
expect(output.string).not_to match /RSpec/m
|
|
90
99
|
end
|
|
91
100
|
end
|
|
92
101
|
|
|
@@ -94,7 +103,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
94
103
|
it "does not show the error class" do
|
|
95
104
|
group.example("example name") { "this".should_receive("that") }
|
|
96
105
|
run_all_and_dump_failures
|
|
97
|
-
output.string.
|
|
106
|
+
expect(output.string).not_to match /RSpec/m
|
|
98
107
|
end
|
|
99
108
|
end
|
|
100
109
|
|
|
@@ -102,7 +111,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
102
111
|
it 'outputs the name and location' do
|
|
103
112
|
|
|
104
113
|
share_examples_for 'foo bar' do
|
|
105
|
-
it("example name") { "this".
|
|
114
|
+
it("example name") { expect("this").to eq("that") }
|
|
106
115
|
end
|
|
107
116
|
|
|
108
117
|
line = __LINE__.next
|
|
@@ -110,7 +119,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
110
119
|
|
|
111
120
|
run_all_and_dump_failures
|
|
112
121
|
|
|
113
|
-
output.string.
|
|
122
|
+
expect(output.string).to include(
|
|
114
123
|
'Shared Example Group: "foo bar" called from ' +
|
|
115
124
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
116
125
|
)
|
|
@@ -120,7 +129,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
120
129
|
it 'outputs the name and location' do
|
|
121
130
|
share_examples_for 'foo bar' do
|
|
122
131
|
describe 'nested group' do
|
|
123
|
-
it("example name") { "this".
|
|
132
|
+
it("example name") { expect("this").to eq("that") }
|
|
124
133
|
end
|
|
125
134
|
end
|
|
126
135
|
|
|
@@ -129,7 +138,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
129
138
|
|
|
130
139
|
run_all_and_dump_failures
|
|
131
140
|
|
|
132
|
-
output.string.
|
|
141
|
+
expect(output.string).to include(
|
|
133
142
|
'Shared Example Group: "foo bar" called from ' +
|
|
134
143
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
135
144
|
)
|
|
@@ -143,7 +152,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
143
152
|
it 'outputs the name and location' do
|
|
144
153
|
|
|
145
154
|
share_as :FooBar do
|
|
146
|
-
it("example name") { "this".
|
|
155
|
+
it("example name") { expect("this").to eq("that") }
|
|
147
156
|
end
|
|
148
157
|
|
|
149
158
|
line = __LINE__.next
|
|
@@ -151,7 +160,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
151
160
|
|
|
152
161
|
run_all_and_dump_failures
|
|
153
162
|
|
|
154
|
-
output.string.
|
|
163
|
+
expect(output.string).to include(
|
|
155
164
|
'Shared Example Group: "FooBar" called from ' +
|
|
156
165
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
157
166
|
)
|
|
@@ -163,7 +172,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
163
172
|
share_as :NestedFoo do
|
|
164
173
|
describe 'nested group' do
|
|
165
174
|
describe 'hell' do
|
|
166
|
-
it("example name") { "this".
|
|
175
|
+
it("example name") { expect("this").to eq("that") }
|
|
167
176
|
end
|
|
168
177
|
end
|
|
169
178
|
end
|
|
@@ -173,7 +182,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
173
182
|
|
|
174
183
|
run_all_and_dump_failures
|
|
175
184
|
|
|
176
|
-
output.string.
|
|
185
|
+
expect(output.string).to include(
|
|
177
186
|
'Shared Example Group: "NestedFoo" called from ' +
|
|
178
187
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
179
188
|
)
|
|
@@ -196,12 +205,12 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
196
205
|
before { RSpec.configuration.stub(:show_failures_in_pending_blocks?) { true } }
|
|
197
206
|
|
|
198
207
|
it "preserves formatting" do
|
|
199
|
-
group.example("example name") { pending { "this".
|
|
208
|
+
group.example("example name") { pending { expect("this").to eq("that") } }
|
|
200
209
|
|
|
201
210
|
run_all_and_dump_pending
|
|
202
211
|
|
|
203
|
-
output.string.
|
|
204
|
-
output.string.
|
|
212
|
+
expect(output.string).to match /group name example name/m
|
|
213
|
+
expect(output.string).to match /(\s+)expected: \"that\"\n\1 got: \"this\"/m
|
|
205
214
|
end
|
|
206
215
|
|
|
207
216
|
context "with an exception without a message" do
|
|
@@ -217,15 +226,15 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
217
226
|
it "does not show the error class" do
|
|
218
227
|
group.example("example name") { pending { raise NameError.new('foo') } }
|
|
219
228
|
run_all_and_dump_pending
|
|
220
|
-
output.string.
|
|
229
|
+
expect(output.string).to match /NameError/m
|
|
221
230
|
end
|
|
222
231
|
end
|
|
223
232
|
|
|
224
233
|
context "with a failed expectation (rspec-expectations)" do
|
|
225
234
|
it "does not show the error class" do
|
|
226
|
-
group.example("example name") { pending { "this".
|
|
235
|
+
group.example("example name") { pending { expect("this").to eq("that") } }
|
|
227
236
|
run_all_and_dump_pending
|
|
228
|
-
output.string.
|
|
237
|
+
expect(output.string).not_to match /RSpec/m
|
|
229
238
|
end
|
|
230
239
|
end
|
|
231
240
|
|
|
@@ -233,7 +242,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
233
242
|
it "does not show the error class" do
|
|
234
243
|
group.example("example name") { pending { "this".should_receive("that") } }
|
|
235
244
|
run_all_and_dump_pending
|
|
236
|
-
output.string.
|
|
245
|
+
expect(output.string).not_to match /RSpec/m
|
|
237
246
|
end
|
|
238
247
|
end
|
|
239
248
|
|
|
@@ -241,7 +250,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
241
250
|
it 'outputs the name and location' do
|
|
242
251
|
|
|
243
252
|
share_examples_for 'foo bar' do
|
|
244
|
-
it("example name") { pending { "this".
|
|
253
|
+
it("example name") { pending { expect("this").to eq("that") } }
|
|
245
254
|
end
|
|
246
255
|
|
|
247
256
|
line = __LINE__.next
|
|
@@ -249,7 +258,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
249
258
|
|
|
250
259
|
run_all_and_dump_pending
|
|
251
260
|
|
|
252
|
-
output.string.
|
|
261
|
+
expect(output.string).to include(
|
|
253
262
|
'Shared Example Group: "foo bar" called from ' +
|
|
254
263
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
255
264
|
)
|
|
@@ -259,7 +268,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
259
268
|
it 'outputs the name and location' do
|
|
260
269
|
share_examples_for 'foo bar' do
|
|
261
270
|
describe 'nested group' do
|
|
262
|
-
it("example name") { pending { "this".
|
|
271
|
+
it("example name") { pending { expect("this").to eq("that") } }
|
|
263
272
|
end
|
|
264
273
|
end
|
|
265
274
|
|
|
@@ -268,7 +277,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
268
277
|
|
|
269
278
|
run_all_and_dump_pending
|
|
270
279
|
|
|
271
|
-
output.string.
|
|
280
|
+
expect(output.string).to include(
|
|
272
281
|
'Shared Example Group: "foo bar" called from ' +
|
|
273
282
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
274
283
|
)
|
|
@@ -282,7 +291,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
282
291
|
it 'outputs the name and location' do
|
|
283
292
|
|
|
284
293
|
share_as :FooBar2 do
|
|
285
|
-
it("example name") { pending { "this".
|
|
294
|
+
it("example name") { pending { expect("this").to eq("that") } }
|
|
286
295
|
end
|
|
287
296
|
|
|
288
297
|
line = __LINE__.next
|
|
@@ -290,7 +299,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
290
299
|
|
|
291
300
|
run_all_and_dump_pending
|
|
292
301
|
|
|
293
|
-
output.string.
|
|
302
|
+
expect(output.string).to include(
|
|
294
303
|
'Shared Example Group: "FooBar2" called from ' +
|
|
295
304
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
296
305
|
)
|
|
@@ -302,7 +311,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
302
311
|
share_as :NestedFoo2 do
|
|
303
312
|
describe 'nested group' do
|
|
304
313
|
describe 'hell' do
|
|
305
|
-
it("example name") { pending { "this".
|
|
314
|
+
it("example name") { pending { expect("this").to eq("that") } }
|
|
306
315
|
end
|
|
307
316
|
end
|
|
308
317
|
end
|
|
@@ -312,7 +321,7 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
312
321
|
|
|
313
322
|
run_all_and_dump_pending
|
|
314
323
|
|
|
315
|
-
output.string.
|
|
324
|
+
expect(output.string).to include(
|
|
316
325
|
'Shared Example Group: "NestedFoo2" called from ' +
|
|
317
326
|
"./spec/rspec/core/formatters/base_text_formatter_spec.rb:#{line}"
|
|
318
327
|
)
|
|
@@ -325,43 +334,96 @@ describe RSpec::Core::Formatters::BaseTextFormatter do
|
|
|
325
334
|
before { RSpec.configuration.stub(:show_failures_in_pending_blocks?) { false } }
|
|
326
335
|
|
|
327
336
|
it "does not output the failure information" do
|
|
328
|
-
group.example("example name") { pending { "this".
|
|
337
|
+
group.example("example name") { pending { expect("this").to eq("that") } }
|
|
329
338
|
run_all_and_dump_pending
|
|
330
|
-
output.string.
|
|
339
|
+
expect(output.string).not_to match /(\s+)expected: \"that\"\n\1 got: \"this\"/m
|
|
331
340
|
end
|
|
332
341
|
end
|
|
333
342
|
end
|
|
334
343
|
|
|
335
344
|
describe "#dump_profile" do
|
|
345
|
+
example_line_number = nil
|
|
346
|
+
|
|
336
347
|
before do
|
|
337
348
|
group = RSpec::Core::ExampleGroup.describe("group") do
|
|
338
|
-
|
|
349
|
+
# Use a sleep so there is some measurable time, to ensure
|
|
350
|
+
# the reported percent is 100%, not 0%.
|
|
351
|
+
example("example") { sleep 0.001 }
|
|
352
|
+
example_line_number = __LINE__ - 1
|
|
339
353
|
end
|
|
340
354
|
group.run(double('reporter').as_null_object)
|
|
341
355
|
|
|
342
356
|
formatter.stub(:examples) { group.examples }
|
|
357
|
+
RSpec.configuration.stub(:profile_examples) { 10 }
|
|
343
358
|
end
|
|
344
359
|
|
|
345
360
|
it "names the example" do
|
|
346
361
|
formatter.dump_profile
|
|
347
|
-
output.string.
|
|
362
|
+
expect(output.string).to match /group example/m
|
|
348
363
|
end
|
|
349
364
|
|
|
350
365
|
it "prints the time" do
|
|
351
366
|
formatter.dump_profile
|
|
352
|
-
output.string.
|
|
367
|
+
expect(output.string).to match /0(\.\d+)? seconds/
|
|
353
368
|
end
|
|
354
369
|
|
|
355
370
|
it "prints the path" do
|
|
356
371
|
formatter.dump_profile
|
|
357
372
|
filename = __FILE__.split(File::SEPARATOR).last
|
|
358
373
|
|
|
359
|
-
output.string.
|
|
374
|
+
expect(output.string).to match /#{filename}\:#{example_line_number}/
|
|
360
375
|
end
|
|
361
376
|
|
|
362
377
|
it "prints the percentage taken from the total runtime" do
|
|
363
378
|
formatter.dump_profile
|
|
364
|
-
output.string.
|
|
379
|
+
expect(output.string).to match /, 100.0% of total time\):/
|
|
380
|
+
end
|
|
381
|
+
end
|
|
382
|
+
|
|
383
|
+
describe "custom_colors" do
|
|
384
|
+
it "uses the custom success color" do
|
|
385
|
+
RSpec.configure do |config|
|
|
386
|
+
config.color_enabled = true
|
|
387
|
+
config.tty = true
|
|
388
|
+
config.success_color = :cyan
|
|
389
|
+
end
|
|
390
|
+
formatter.dump_summary(0,1,0,0)
|
|
391
|
+
expect(output.string).to include("\e[36m")
|
|
392
|
+
end
|
|
393
|
+
end
|
|
394
|
+
|
|
395
|
+
describe "#colorize" do
|
|
396
|
+
it "accepts a VT100 integer code and formats the text with it" do
|
|
397
|
+
expect(formatter.colorize('abc', 32)).to eq "\e[32mabc\e[0m"
|
|
398
|
+
end
|
|
399
|
+
|
|
400
|
+
it "accepts a symbol as a color parameter and translates it to the correct integer code, then formats the text with it" do
|
|
401
|
+
expect(formatter.colorize('abc', :green)).to eq "\e[32mabc\e[0m"
|
|
402
|
+
end
|
|
403
|
+
|
|
404
|
+
it "accepts a non-default color symbol as a parameter and translates it to the correct integer code, then formats the text with it" do
|
|
405
|
+
expect(formatter.colorize('abc', :cyan)).to eq "\e[36mabc\e[0m"
|
|
365
406
|
end
|
|
366
407
|
end
|
|
408
|
+
|
|
409
|
+
described_class::VT100_COLORS.each do |name, number|
|
|
410
|
+
next if name == :black
|
|
411
|
+
|
|
412
|
+
describe "##{name}" do
|
|
413
|
+
before do
|
|
414
|
+
RSpec.configuration.stub(:color_enabled?) { true }
|
|
415
|
+
RSpec.stub(:warn)
|
|
416
|
+
end
|
|
417
|
+
|
|
418
|
+
it "prints the text using the color code for #{name}" do
|
|
419
|
+
expect(formatter.send(name, "text")).to eq("\e[#{number}mtext\e[0m")
|
|
420
|
+
end
|
|
421
|
+
|
|
422
|
+
it "prints a deprecation warning" do
|
|
423
|
+
RSpec.should_receive(:warn).with(/#{name}/)
|
|
424
|
+
formatter.send(name, "text")
|
|
425
|
+
end
|
|
426
|
+
end
|
|
427
|
+
end
|
|
428
|
+
|
|
367
429
|
end
|
|
@@ -23,8 +23,8 @@ module RSpec::Core::Formatters
|
|
|
23
23
|
|
|
24
24
|
examples.each {|e| formatter.example_failed(e) }
|
|
25
25
|
|
|
26
|
-
output.string.
|
|
27
|
-
output.string.
|
|
26
|
+
expect(output.string).to match /first example \(FAILED - 1\)/m
|
|
27
|
+
expect(output.string).to match /second example \(FAILED - 2\)/m
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
it "represents nested group using hierarchy tree" do
|
|
@@ -48,7 +48,7 @@ module RSpec::Core::Formatters
|
|
|
48
48
|
|
|
49
49
|
group.run(RSpec::Core::Reporter.new(formatter))
|
|
50
50
|
|
|
51
|
-
output.string.
|
|
51
|
+
expect(output.string).to eql("
|
|
52
52
|
root
|
|
53
53
|
context 1
|
|
54
54
|
nested example 1.1
|
|
@@ -76,7 +76,7 @@ root
|
|
|
76
76
|
|
|
77
77
|
group.run(RSpec::Core::Reporter.new(formatter))
|
|
78
78
|
|
|
79
|
-
output.string.
|
|
79
|
+
expect(output.string).to eql("
|
|
80
80
|
root
|
|
81
81
|
nested
|
|
82
82
|
example 1
|