rspec-core 2.99.2 → 3.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +14 -6
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/Changelog.md +103 -191
- data/License.txt +1 -0
- data/README.md +4 -25
- data/features/Upgrade.md +2 -14
- data/features/command_line/dry_run.feature +29 -0
- data/features/command_line/example_name_option.feature +1 -1
- data/features/command_line/fail_fast.feature +26 -0
- data/features/command_line/format_option.feature +3 -3
- data/features/command_line/line_number_option.feature +16 -11
- data/features/command_line/order.feature +2 -3
- data/features/command_line/pattern_option.feature +3 -3
- data/features/command_line/randomization.feature +63 -0
- data/features/command_line/require_option.feature +2 -2
- data/features/command_line/ruby.feature +1 -1
- data/features/configuration/alias_example_to.feature +13 -22
- data/features/configuration/{backtrace_clean_patterns.feature → backtrace_exclusion_patterns.feature} +17 -14
- data/features/configuration/custom_settings.feature +11 -11
- data/features/configuration/overriding_global_ordering.feature +93 -0
- data/features/configuration/profile.feature +13 -13
- data/features/configuration/read_options_from_file.feature +7 -7
- data/features/example_groups/basic_structure.feature +1 -1
- data/features/example_groups/shared_context.feature +8 -8
- data/features/example_groups/shared_examples.feature +6 -14
- data/features/expectation_framework_integration/configure_expectation_framework.feature +27 -122
- data/features/filtering/exclusion_filters.feature +2 -5
- data/features/filtering/inclusion_filters.feature +1 -5
- data/features/formatters/json_formatter.feature +2 -2
- data/features/formatters/text_formatter.feature +4 -4
- data/features/helper_methods/arbitrary_methods.feature +2 -2
- data/features/helper_methods/let.feature +5 -5
- data/features/helper_methods/modules.feature +5 -8
- data/features/hooks/around_hooks.feature +2 -2
- data/features/hooks/before_and_after_hooks.feature +14 -14
- data/features/hooks/filtering.feature +12 -14
- data/features/metadata/described_class.feature +1 -1
- data/features/metadata/user_defined.feature +16 -29
- data/features/mock_framework_integration/use_flexmock.feature +1 -1
- data/features/mock_framework_integration/use_mocha.feature +1 -1
- data/features/mock_framework_integration/use_rr.feature +1 -1
- data/features/mock_framework_integration/use_rspec.feature +5 -5
- data/features/pending/pending_examples.feature +5 -5
- data/features/spec_files/arbitrary_file_suffix.feature +1 -1
- data/features/step_definitions/additional_cli_steps.rb +3 -3
- data/features/subject/explicit_subject.feature +8 -8
- data/features/subject/implicit_receiver.feature +29 -0
- data/features/subject/implicit_subject.feature +4 -4
- data/features/support/env.rb +10 -3
- data/features/support/require_expect_syntax_in_aruba_specs.rb +16 -0
- data/lib/rspec/core.rb +11 -48
- data/lib/rspec/core/backport_random.rb +302 -0
- data/lib/rspec/core/backtrace_formatter.rb +65 -0
- data/lib/rspec/core/command_line.rb +7 -18
- data/lib/rspec/core/configuration.rb +202 -507
- data/lib/rspec/core/configuration_options.rb +17 -30
- data/lib/rspec/core/example.rb +29 -39
- data/lib/rspec/core/example_group.rb +166 -259
- data/lib/rspec/core/filter_manager.rb +30 -47
- data/lib/rspec/core/flat_map.rb +17 -0
- data/lib/rspec/core/formatters.rb +0 -138
- data/lib/rspec/core/formatters/base_formatter.rb +46 -1
- data/lib/rspec/core/formatters/base_text_formatter.rb +38 -61
- data/lib/rspec/core/formatters/deprecation_formatter.rb +21 -52
- data/lib/rspec/core/formatters/helpers.rb +0 -28
- data/lib/rspec/core/formatters/html_formatter.rb +1 -1
- data/lib/rspec/core/formatters/json_formatter.rb +38 -9
- data/lib/rspec/core/formatters/snippet_extractor.rb +14 -5
- data/lib/rspec/core/hooks.rb +55 -39
- data/lib/rspec/core/memoized_helpers.rb +17 -167
- data/lib/rspec/core/metadata.rb +16 -64
- data/lib/rspec/core/option_parser.rb +30 -39
- data/lib/rspec/core/ordering.rb +154 -0
- data/lib/rspec/core/pending.rb +12 -69
- data/lib/rspec/core/project_initializer.rb +12 -10
- data/lib/rspec/core/rake_task.rb +5 -108
- data/lib/rspec/core/reporter.rb +15 -18
- data/lib/rspec/core/runner.rb +16 -30
- data/lib/rspec/core/shared_context.rb +3 -5
- data/lib/rspec/core/shared_example_group.rb +3 -51
- data/lib/rspec/core/shared_example_group/collection.rb +1 -19
- data/lib/rspec/core/version.rb +1 -1
- data/lib/rspec/core/warnings.rb +22 -0
- data/lib/rspec/core/world.rb +12 -8
- data/spec/command_line/order_spec.rb +20 -23
- data/spec/rspec/core/backtrace_formatter_spec.rb +216 -0
- data/spec/rspec/core/command_line_spec.rb +32 -48
- data/spec/rspec/core/configuration_options_spec.rb +19 -50
- data/spec/rspec/core/configuration_spec.rb +142 -713
- data/spec/rspec/core/drb_command_line_spec.rb +2 -0
- data/spec/rspec/core/dsl_spec.rb +0 -1
- data/spec/rspec/core/example_group_spec.rb +192 -223
- data/spec/rspec/core/example_spec.rb +40 -16
- data/spec/rspec/core/filter_manager_spec.rb +2 -2
- data/spec/rspec/core/formatters/base_formatter_spec.rb +0 -41
- data/spec/rspec/core/formatters/base_text_formatter_spec.rb +5 -123
- data/spec/rspec/core/formatters/deprecation_formatter_spec.rb +2 -87
- data/spec/rspec/core/formatters/documentation_formatter_spec.rb +2 -3
- data/spec/rspec/core/formatters/{text_mate_formatted.html → html_formatted-1.8.7-jruby.html} +44 -25
- data/spec/rspec/core/formatters/html_formatted-1.8.7-rbx.html +477 -0
- data/spec/rspec/core/formatters/{html_formatted.html → html_formatted-1.8.7.html} +42 -25
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +425 -0
- data/spec/rspec/core/formatters/html_formatted-1.9.3-jruby.html +416 -0
- data/spec/rspec/core/formatters/html_formatted-1.9.3-rbx.html +477 -0
- data/spec/rspec/core/formatters/html_formatted-1.9.3.html +419 -0
- data/spec/rspec/core/formatters/html_formatted-2.0.0.html +425 -0
- data/spec/rspec/core/formatters/html_formatter_spec.rb +21 -46
- data/spec/rspec/core/formatters/json_formatter_spec.rb +97 -8
- data/spec/rspec/core/hooks_filtering_spec.rb +5 -5
- data/spec/rspec/core/hooks_spec.rb +61 -47
- data/spec/rspec/core/memoized_helpers_spec.rb +20 -322
- data/spec/rspec/core/metadata_spec.rb +1 -24
- data/spec/rspec/core/option_parser_spec.rb +20 -62
- data/spec/rspec/core/ordering_spec.rb +102 -0
- data/spec/rspec/core/pending_example_spec.rb +0 -40
- data/spec/rspec/core/project_initializer_spec.rb +1 -25
- data/spec/rspec/core/rake_task_spec.rb +5 -72
- data/spec/rspec/core/random_spec.rb +47 -0
- data/spec/rspec/core/reporter_spec.rb +23 -48
- data/spec/rspec/core/runner_spec.rb +31 -39
- data/spec/rspec/core/shared_context_spec.rb +3 -15
- data/spec/rspec/core/shared_example_group/collection_spec.rb +4 -17
- data/spec/rspec/core/shared_example_group_spec.rb +12 -45
- data/spec/rspec/core/{deprecation_spec.rb → warnings_spec.rb} +3 -1
- data/spec/rspec/core_spec.rb +4 -21
- data/spec/spec_helper.rb +41 -5
- data/spec/support/helper_methods.rb +0 -29
- data/spec/support/sandboxed_mock_space.rb +0 -16
- data/spec/support/shared_example_groups.rb +7 -36
- data/spec/support/stderr_splitter.rb +36 -0
- metadata +163 -157
- metadata.gz.sig +1 -0
- data/exe/autospec +0 -13
- data/features/Autotest.md +0 -38
- data/features/configuration/treat_symbols_as_metadata_keys_with_true_values.feature +0 -52
- data/features/subject/attribute_of_subject.feature +0 -124
- data/features/subject/one_liner_syntax.feature +0 -71
- data/lib/autotest/discover.rb +0 -10
- data/lib/autotest/rspec2.rb +0 -77
- data/lib/rspec/core/backtrace_cleaner.rb +0 -46
- data/lib/rspec/core/backward_compatibility.rb +0 -55
- data/lib/rspec/core/caller_filter.rb +0 -60
- data/lib/rspec/core/deprecated_mutable_array_proxy.rb +0 -32
- data/lib/rspec/core/deprecation.rb +0 -26
- data/lib/rspec/core/extensions/instance_eval_with_args.rb +0 -44
- data/lib/rspec/core/extensions/kernel.rb +0 -9
- data/lib/rspec/core/extensions/module_eval_with_args.rb +0 -38
- data/lib/rspec/core/extensions/ordered.rb +0 -27
- data/lib/rspec/core/formatters/console_codes.rb +0 -42
- data/lib/rspec/core/formatters/text_mate_formatter.rb +0 -34
- data/lib/rspec/core/metadata_hash_builder.rb +0 -97
- data/lib/rspec/core/minitest_assertions_adapter.rb +0 -28
- data/lib/rspec/core/test_unit_assertions_adapter.rb +0 -30
- data/spec/autotest/discover_spec.rb +0 -49
- data/spec/autotest/failed_results_re_spec.rb +0 -45
- data/spec/autotest/rspec_spec.rb +0 -133
- data/spec/rspec/core/backtrace_cleaner_spec.rb +0 -68
- data/spec/rspec/core/caller_filter_spec.rb +0 -58
- data/spec/rspec/core/deprecations_spec.rb +0 -59
- data/spec/rspec/core/formatters/console_codes_spec.rb +0 -50
- data/spec/rspec/core/formatters/text_mate_formatter_spec.rb +0 -107
- data/spec/rspec/core/kernel_extensions_spec.rb +0 -9
- data/spec/rspec/core/pending_spec.rb +0 -27
- data/spec/support/silence_dsl_deprecations.rb +0 -32
@@ -115,29 +115,6 @@ module RSpec
|
|
115
115
|
it_has_behavior "matching by line number"
|
116
116
|
end
|
117
117
|
|
118
|
-
context "with a :line_numbers filter" do
|
119
|
-
before(:each) { Metadata.line_number_filter_deprecation_issued = false }
|
120
|
-
after(:all) { Metadata.line_number_filter_deprecation_issued = false }
|
121
|
-
let(:metadata) { Metadata.new.process("group") }
|
122
|
-
|
123
|
-
context "when a line number filter is applied manually (e.g. not from the command line)" do
|
124
|
-
it 'issues a deprecation warning' do
|
125
|
-
expect_deprecation_with_call_site(__FILE__, __LINE__ + 1, /:line_numbers/)
|
126
|
-
metadata.filter_applies?(:line_numbers, [2])
|
127
|
-
end
|
128
|
-
end
|
129
|
-
|
130
|
-
context "when a line number filter is applied from the command line" do
|
131
|
-
it "does not issue an additional deprecation" do
|
132
|
-
allow_deprecation
|
133
|
-
Parser.parse!(["--line-number", "3"])
|
134
|
-
|
135
|
-
expect_no_deprecation
|
136
|
-
metadata.filter_applies?(:line_numbers, [2])
|
137
|
-
end
|
138
|
-
end
|
139
|
-
end
|
140
|
-
|
141
118
|
context "with locations" do
|
142
119
|
let(:condition_key){ :locations }
|
143
120
|
let(:parent_group_condition) do
|
@@ -284,7 +261,7 @@ module RSpec
|
|
284
261
|
end
|
285
262
|
|
286
263
|
[:described_class, :describes].each do |key|
|
287
|
-
describe key
|
264
|
+
describe key do
|
288
265
|
context "with a String" do
|
289
266
|
it "returns nil" do
|
290
267
|
m = Metadata.new
|
@@ -5,6 +5,7 @@ module RSpec::Core
|
|
5
5
|
let(:output_file){ mock File }
|
6
6
|
|
7
7
|
before do
|
8
|
+
RSpec.stub(:deprecate)
|
8
9
|
File.stub(:open).with("foo.txt",'w') { (output_file) }
|
9
10
|
end
|
10
11
|
|
@@ -27,7 +28,7 @@ module RSpec::Core
|
|
27
28
|
|
28
29
|
describe "--formatter" do
|
29
30
|
it "is deprecated" do
|
30
|
-
|
31
|
+
RSpec.should_receive(:deprecate)
|
31
32
|
Parser.parse!(%w[--formatter doc])
|
32
33
|
end
|
33
34
|
|
@@ -38,11 +39,6 @@ module RSpec::Core
|
|
38
39
|
end
|
39
40
|
|
40
41
|
describe "--default_path" do
|
41
|
-
it "is deprecated" do
|
42
|
-
expect_deprecation_with_no_call_site(%r{`--default_path`})
|
43
|
-
Parser.parse!(%w[--default_path foo])
|
44
|
-
end
|
45
|
-
|
46
42
|
it "gets converted to --default-path" do
|
47
43
|
options = Parser.parse!(%w[--default_path foo])
|
48
44
|
expect(options[:default_path]).to eq "foo"
|
@@ -50,17 +46,13 @@ module RSpec::Core
|
|
50
46
|
end
|
51
47
|
|
52
48
|
describe "--line_number" do
|
53
|
-
it "is deprecated" do
|
54
|
-
expect_deprecation_with_no_call_site(%r{`--line-number`/`-l`})
|
55
|
-
Parser.parse!(%w[--line_number 3])
|
56
|
-
end
|
57
|
-
|
58
49
|
it "gets converted to --line-number" do
|
59
50
|
options = Parser.parse!(%w[--line_number 3])
|
60
51
|
expect(options[:line_numbers]).to eq ["3"]
|
61
52
|
end
|
62
53
|
end
|
63
54
|
|
55
|
+
|
64
56
|
describe "--default-path" do
|
65
57
|
it "sets the default path where RSpec looks for examples" do
|
66
58
|
options = Parser.parse!(%w[--default-path foo])
|
@@ -74,11 +66,6 @@ module RSpec::Core
|
|
74
66
|
options = Parser.parse!([option, "3"])
|
75
67
|
expect(options[:line_numbers]).to eq ["3"]
|
76
68
|
end
|
77
|
-
|
78
|
-
it "is deprecated" do
|
79
|
-
expect_deprecation_with_no_call_site(%r{`--line-number`/`-l`})
|
80
|
-
Parser.parse!([option, "3"])
|
81
|
-
end
|
82
69
|
end
|
83
70
|
end
|
84
71
|
|
@@ -91,29 +78,6 @@ module RSpec::Core
|
|
91
78
|
end
|
92
79
|
end
|
93
80
|
|
94
|
-
describe "--deprecation-out" do
|
95
|
-
it 'configures the deprecation stream' do
|
96
|
-
expect {
|
97
|
-
Parser.parse!(['--deprecation-out', 'path/to/file.log'])
|
98
|
-
}.to change { RSpec.configuration.deprecation_stream }.to('path/to/file.log')
|
99
|
-
end
|
100
|
-
|
101
|
-
it 'sets the deprecation stream before processing other options that issue deprecations' do
|
102
|
-
expect(RSpec).to receive(:deprecate) do
|
103
|
-
expect(RSpec.configuration.deprecation_stream).to eq('path/to/file.log')
|
104
|
-
end
|
105
|
-
|
106
|
-
Parser.parse!(['--line-number', '3', '--deprecation-out', 'path/to/file.log'])
|
107
|
-
end
|
108
|
-
|
109
|
-
it 'issues an appropriate error when no file arg is provided' do
|
110
|
-
out_error = Parser.parse!(['--out']) rescue $!
|
111
|
-
expect {
|
112
|
-
Parser.parse!(['--deprecation-out'])
|
113
|
-
}.to raise_error(out_error.class, out_error.message.gsub('--out', '--deprecation-out'))
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
81
|
%w[--out -o].each do |option|
|
118
82
|
describe option do
|
119
83
|
let(:options) { Parser.parse!([option, 'out.txt']) }
|
@@ -193,6 +157,21 @@ module RSpec::Core
|
|
193
157
|
options = Parser.parse!([option, 'foo:any_string'])
|
194
158
|
expect(options[:inclusion_filter]).to eq(:foo => 'any_string')
|
195
159
|
end
|
160
|
+
|
161
|
+
it "treats ':any_sym' as :any_sym" do
|
162
|
+
options = Parser.parse!([option, 'foo::any_sym'])
|
163
|
+
expect(options[:inclusion_filter]).to eq(:foo => :any_sym)
|
164
|
+
end
|
165
|
+
|
166
|
+
it "treats '42' as 42" do
|
167
|
+
options = Parser.parse!([option, 'foo:42'])
|
168
|
+
expect(options[:inclusion_filter]).to eq(:foo => 42)
|
169
|
+
end
|
170
|
+
|
171
|
+
it "treats '3.146' as 3.146" do
|
172
|
+
options = Parser.parse!([option, 'foo:3.146'])
|
173
|
+
expect(options[:inclusion_filter]).to eq(:foo => 3.146)
|
174
|
+
end
|
196
175
|
end
|
197
176
|
|
198
177
|
context "with ~" do
|
@@ -232,25 +211,6 @@ module RSpec::Core
|
|
232
211
|
end
|
233
212
|
end
|
234
213
|
end
|
235
|
-
|
236
|
-
context "with default" do
|
237
|
-
it 'defines the order as defined' do
|
238
|
-
options = Parser.parse!(['--order', 'default'])
|
239
|
-
expect(options[:order]).to eq('defined')
|
240
|
-
end
|
241
|
-
|
242
|
-
it 'prints a deprecation warning' do
|
243
|
-
expect_deprecation_with_no_call_site(/default/)
|
244
|
-
Parser.parse!(['--order', 'default'])
|
245
|
-
end
|
246
|
-
end
|
247
|
-
|
248
|
-
context "with defined" do
|
249
|
-
it 'defines the order as defined' do
|
250
|
-
options = Parser.parse!(['--order', 'defined'])
|
251
|
-
expect(options[:order]).to eq('defined')
|
252
|
-
end
|
253
|
-
end
|
254
214
|
end
|
255
215
|
|
256
216
|
describe "--seed" do
|
@@ -272,15 +232,13 @@ module RSpec::Core
|
|
272
232
|
end
|
273
233
|
|
274
234
|
it 'sets profile_examples to true when accidentally combined with path' do
|
275
|
-
|
235
|
+
allow_warning
|
276
236
|
options = Parser.parse!(%w[--profile some/path])
|
277
237
|
expect(options[:profile_examples]).to eq true
|
278
238
|
end
|
279
239
|
|
280
240
|
it 'warns when accidentally combined with path' do
|
281
|
-
|
282
|
-
expect(msg).to match "Non integer specified as profile count"
|
283
|
-
end
|
241
|
+
expect_warning_without_call_site "Non integer specified as profile count"
|
284
242
|
options = Parser.parse!(%w[--profile some/path])
|
285
243
|
expect(options[:profile_examples]).to eq true
|
286
244
|
end
|
@@ -0,0 +1,102 @@
|
|
1
|
+
require "spec_helper"
|
2
|
+
|
3
|
+
module RSpec
|
4
|
+
module Core
|
5
|
+
module Ordering
|
6
|
+
describe Identity do
|
7
|
+
it "does not affect the ordering of the items" do
|
8
|
+
expect(Identity.new.order([1, 2, 3])).to eq([1, 2, 3])
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
describe Random do
|
13
|
+
describe '.order' do
|
14
|
+
subject { described_class.new(configuration) }
|
15
|
+
|
16
|
+
let(:configuration) { RSpec::Core::Configuration.new }
|
17
|
+
let(:items) { 10.times.map { |n| n } }
|
18
|
+
let(:shuffled_items) { subject.order items }
|
19
|
+
|
20
|
+
it 'shuffles the items randomly' do
|
21
|
+
expect(shuffled_items).to match_array items
|
22
|
+
expect(shuffled_items).to_not eq items
|
23
|
+
end
|
24
|
+
|
25
|
+
context 'given multiple calls' do
|
26
|
+
it 'returns the items in the same order' do
|
27
|
+
expect(subject.order(items)).to eq shuffled_items
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
context 'given randomization has been seeded explicitly' do
|
32
|
+
before { @seed = srand }
|
33
|
+
after { srand @seed }
|
34
|
+
|
35
|
+
it "does not affect the global random number generator" do
|
36
|
+
srand 123
|
37
|
+
val1, val2 = rand(1_000), rand(1_000)
|
38
|
+
|
39
|
+
subject
|
40
|
+
|
41
|
+
srand 123
|
42
|
+
subject.order items
|
43
|
+
expect(rand(1_000)).to eq(val1)
|
44
|
+
subject.order items
|
45
|
+
expect(rand(1_000)).to eq(val2)
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
|
51
|
+
describe Custom do
|
52
|
+
it 'uses the block to order the list' do
|
53
|
+
strategy = Custom.new(proc { |list| list.reverse })
|
54
|
+
|
55
|
+
expect(strategy.order([1, 2, 3, 4])).to eq([4, 3, 2, 1])
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
59
|
+
describe Registry do
|
60
|
+
let(:configuration) { Configuration.new }
|
61
|
+
subject(:registry) { Registry.new(configuration) }
|
62
|
+
|
63
|
+
describe "#used_random_seed?" do
|
64
|
+
it 'returns false if the random orderer has not been used' do
|
65
|
+
expect(registry.used_random_seed?).to be false
|
66
|
+
end
|
67
|
+
|
68
|
+
it 'returns false if the random orderer has been fetched but not used' do
|
69
|
+
expect(registry.fetch(:random)).to be_a(Random)
|
70
|
+
expect(registry.used_random_seed?).to be false
|
71
|
+
end
|
72
|
+
|
73
|
+
it 'returns true if the random orderer has been used' do
|
74
|
+
registry.fetch(:random).order([1, 2])
|
75
|
+
expect(registry.used_random_seed?).to be true
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
79
|
+
describe "#fetch" do
|
80
|
+
it "gives the registered ordering when called with a symbol" do
|
81
|
+
ordering = Object.new
|
82
|
+
subject.register(:falcon, ordering)
|
83
|
+
|
84
|
+
expect(subject.fetch(:falcon)).to be ordering
|
85
|
+
end
|
86
|
+
|
87
|
+
context "when given an unrecognized symbol" do
|
88
|
+
it 'invokes the given block and returns its value' do
|
89
|
+
expect(subject.fetch(:falcon) { :fallback }).to eq(:fallback)
|
90
|
+
end
|
91
|
+
|
92
|
+
it 'raises an error if no block is given' do
|
93
|
+
expect {
|
94
|
+
subject.fetch(:falcon)
|
95
|
+
}.to raise_error(IndexError)
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|
102
|
+
end
|
@@ -55,19 +55,6 @@ describe "an example" do
|
|
55
55
|
example.run(group.new, double.as_null_object)
|
56
56
|
expect(example).to be_pending_with(RSpec::Core::Pending::NO_REASON_GIVEN)
|
57
57
|
end
|
58
|
-
|
59
|
-
it 'shows upgrade warning' do
|
60
|
-
expect_warn_deprecation_with_call_site(
|
61
|
-
"pending_example_spec.rb", __LINE__ + 4
|
62
|
-
)
|
63
|
-
group = RSpec::Core::ExampleGroup.describe('group') do
|
64
|
-
it "does something" do
|
65
|
-
pending
|
66
|
-
end
|
67
|
-
end
|
68
|
-
example = group.examples.first
|
69
|
-
example.run(group.new, double.as_null_object)
|
70
|
-
end
|
71
58
|
end
|
72
59
|
|
73
60
|
context "with no docstring" do
|
@@ -117,20 +104,6 @@ describe "an example" do
|
|
117
104
|
end
|
118
105
|
end
|
119
106
|
|
120
|
-
context "skip with a block" do
|
121
|
-
it "does not execute the block" do
|
122
|
-
called = false
|
123
|
-
group = RSpec::Core::ExampleGroup.describe('group') do
|
124
|
-
it "does something" do
|
125
|
-
skip { called = true }
|
126
|
-
end
|
127
|
-
end
|
128
|
-
example = group.examples.first
|
129
|
-
example.run(group.new, double.as_null_object)
|
130
|
-
expect(called).to eq(false)
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
107
|
context "with a block" do
|
135
108
|
def run_example(*pending_args, &block)
|
136
109
|
group = RSpec::Core::ExampleGroup.describe('group') do
|
@@ -143,19 +116,6 @@ describe "an example" do
|
|
143
116
|
example
|
144
117
|
end
|
145
118
|
|
146
|
-
it 'shows upgrade warning' do
|
147
|
-
expect_warn_deprecation_with_call_site(
|
148
|
-
"pending_example_spec.rb", __LINE__ + 4
|
149
|
-
)
|
150
|
-
group = RSpec::Core::ExampleGroup.describe('group') do
|
151
|
-
it "does something" do
|
152
|
-
pending {}
|
153
|
-
end
|
154
|
-
end
|
155
|
-
example = group.examples.first
|
156
|
-
example.run(group.new, double.as_null_object)
|
157
|
-
end
|
158
|
-
|
159
119
|
context "that fails" do
|
160
120
|
def run_example(*pending_args)
|
161
121
|
super(*pending_args) { raise ArgumentError.new }
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require "spec_helper"
|
2
|
+
require 'rspec/core/project_initializer'
|
2
3
|
|
3
4
|
module RSpec::Core
|
4
5
|
describe ProjectInitializer, :isolated_directory => true do
|
@@ -8,7 +9,6 @@ module RSpec::Core
|
|
8
9
|
let(:command_line_config) { ProjectInitializer.new }
|
9
10
|
|
10
11
|
before do
|
11
|
-
command_line_config.stub(:warn)
|
12
12
|
command_line_config.stub(:puts)
|
13
13
|
command_line_config.stub(:gets => 'no')
|
14
14
|
end
|
@@ -68,30 +68,6 @@ module RSpec::Core
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
context "with autotest/discover.rb" do
|
72
|
-
before do
|
73
|
-
FileUtils.mkdir('autotest')
|
74
|
-
FileUtils.touch 'autotest/discover.rb'
|
75
|
-
end
|
76
|
-
|
77
|
-
it "asks whether to delete the file" do
|
78
|
-
command_line_config.should_receive(:puts).with(/delete/)
|
79
|
-
command_line_config.run
|
80
|
-
end
|
81
|
-
|
82
|
-
it "removes it if confirmed" do
|
83
|
-
command_line_config.stub(:gets => 'yes')
|
84
|
-
command_line_config.run
|
85
|
-
expect(File.exist?('autotest/discover.rb')).to be_falsey
|
86
|
-
end
|
87
|
-
|
88
|
-
it "leaves it if not confirmed" do
|
89
|
-
command_line_config.stub(:gets => 'no')
|
90
|
-
command_line_config.run
|
91
|
-
expect(File.exist?('autotest/discover.rb')).to be_truthy
|
92
|
-
end
|
93
|
-
end
|
94
|
-
|
95
71
|
context "with lib/tasks/rspec.rake" do
|
96
72
|
before do
|
97
73
|
FileUtils.mkdir_p('lib/tasks')
|
@@ -10,11 +10,6 @@ module RSpec::Core
|
|
10
10
|
FileUtils::RUBY
|
11
11
|
end
|
12
12
|
|
13
|
-
def with_rcov
|
14
|
-
task.rcov = true
|
15
|
-
yield
|
16
|
-
end
|
17
|
-
|
18
13
|
def spec_command
|
19
14
|
task.__send__(:spec_command)
|
20
15
|
end
|
@@ -44,79 +39,17 @@ module RSpec::Core
|
|
44
39
|
end
|
45
40
|
end
|
46
41
|
|
47
|
-
context "with rcov" do
|
48
|
-
before { allow(RSpec).to receive(:deprecate) }
|
49
|
-
|
50
|
-
it "renders rcov" do
|
51
|
-
with_rcov do
|
52
|
-
expect(spec_command).to match(/^#{ruby} -S rcov/)
|
53
|
-
end
|
54
|
-
end
|
55
|
-
|
56
|
-
it 'warns of deprecation' do
|
57
|
-
expect(RSpec).to receive(:deprecate)
|
58
|
-
with_rcov { spec_command }
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
42
|
context "with ruby options" do
|
63
43
|
it "renders them before -S" do
|
64
|
-
|
65
|
-
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
context "with rcov_opts" do
|
70
|
-
before { allow(RSpec).to receive(:deprecate) }
|
71
|
-
|
72
|
-
context "with rcov=false (default)" do
|
73
|
-
it "does not add the rcov options to the command" do
|
74
|
-
task.rcov_opts = '--exclude "mocks"'
|
75
|
-
expect(spec_command).not_to match(/--exclude "mocks"/)
|
76
|
-
end
|
77
|
-
|
78
|
-
it 'warns of deprecation' do
|
79
|
-
expect(RSpec).to receive(:deprecate)
|
80
|
-
task.rcov_opts = '--exclude "mocks"'
|
81
|
-
end
|
82
|
-
end
|
83
|
-
|
84
|
-
context "with rcov=true" do
|
85
|
-
it "renders them after rcov" do
|
86
|
-
task.rcov = true
|
87
|
-
task.rcov_opts = '--exclude "mocks"'
|
88
|
-
expect(spec_command).to match(/rcov.*--exclude "mocks"/)
|
89
|
-
end
|
90
|
-
|
91
|
-
it "ensures that -Ispec:lib is in the resulting command" do
|
92
|
-
task.rcov = true
|
93
|
-
task.rcov_opts = '--exclude "mocks"'
|
94
|
-
expect(spec_command).to match(/rcov.*-Ispec:lib/)
|
95
|
-
end
|
96
|
-
|
97
|
-
it 'warns of deprecation' do
|
98
|
-
expect(RSpec).to receive(:deprecate)
|
99
|
-
task.rcov_opts = '--exclude "mocks"'
|
100
|
-
end
|
44
|
+
task.ruby_opts = "-w"
|
45
|
+
expect(spec_command).to match(/^#{ruby} -w -S rspec/)
|
101
46
|
end
|
102
47
|
end
|
103
48
|
|
104
49
|
context "with rspec_opts" do
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
it "adds the rspec_opts after the rcov_opts and files" do
|
109
|
-
task.stub(:files_to_run) { "this.rb that.rb" }
|
110
|
-
task.rcov = true
|
111
|
-
task.rspec_opts = "-Ifoo"
|
112
|
-
expect(spec_command).to match(/this.rb that.rb -- -Ifoo/)
|
113
|
-
end
|
114
|
-
end
|
115
|
-
context "with rcov=false (default)" do
|
116
|
-
it "adds the rspec_opts" do
|
117
|
-
task.rspec_opts = "-Ifoo"
|
118
|
-
expect(spec_command).to match(/rspec.*-Ifoo/)
|
119
|
-
end
|
50
|
+
it "adds the rspec_opts" do
|
51
|
+
task.rspec_opts = "-Ifoo"
|
52
|
+
expect(spec_command).to match(/rspec.*-Ifoo/)
|
120
53
|
end
|
121
54
|
end
|
122
55
|
|