rspec-core 2.0.1 → 2.1.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/Gemfile +8 -3
- data/Guardfile +5 -0
- data/History.markdown +32 -2
- data/README.markdown +10 -3
- data/Rakefile +12 -13
- data/Upgrade.markdown +175 -121
- data/bin/autospec +13 -0
- data/bin/rspec +24 -1
- data/features/command_line/line_number_appended_to_path.feature +3 -1
- data/features/command_line/line_number_option.feature +3 -1
- data/features/command_line/tag.feature +74 -0
- data/features/filtering/exclusion_filters.feature +1 -1
- data/features/filtering/implicit_filters.feature +166 -0
- data/features/hooks/around_hooks.feature +51 -44
- data/features/metadata/described_class.feature +3 -0
- data/features/pending/pending_examples.feature +76 -0
- data/features/step_definitions/additional_cli_steps.rb +11 -0
- data/features/subject/attribute_of_subject.feature +8 -0
- data/features/subject/explicit_subject.feature +8 -13
- data/features/subject/implicit_receiver.feature +29 -0
- data/features/subject/implicit_subject.feature +6 -7
- data/lib/rspec/core.rb +3 -21
- data/lib/rspec/core/backward_compatibility.rb +22 -3
- data/lib/rspec/core/command_line.rb +1 -0
- data/lib/rspec/core/configuration.rb +34 -6
- data/lib/rspec/core/configuration_options.rb +1 -3
- data/lib/rspec/core/example.rb +0 -5
- data/lib/rspec/core/example_group.rb +9 -8
- data/lib/rspec/core/expecting/with_rspec.rb +11 -0
- data/lib/rspec/core/extensions/object.rb +1 -1
- data/lib/rspec/core/formatters/base_formatter.rb +1 -6
- data/lib/rspec/core/hooks.rb +1 -1
- data/lib/rspec/core/metadata.rb +15 -5
- data/lib/rspec/core/option_parser.rb +17 -0
- data/lib/rspec/core/pending.rb +10 -1
- data/lib/rspec/core/rake_task.rb +32 -10
- data/lib/rspec/core/reporter.rb +1 -0
- data/lib/rspec/core/subject.rb +58 -59
- data/lib/rspec/core/version.rb +1 -1
- data/lib/rspec/core/world.rb +9 -4
- data/rspec-core.gemspec +4 -11
- data/spec/rspec/core/command_line_spec.rb +16 -5
- data/spec/rspec/core/configuration_options_spec.rb +6 -0
- data/spec/rspec/core/configuration_spec.rb +89 -6
- data/spec/rspec/core/deprecations_spec.rb +17 -1
- data/spec/rspec/core/example_group_spec.rb +29 -14
- data/spec/rspec/core/example_spec.rb +0 -7
- data/spec/rspec/core/formatters/html_formatted-1.8.6.html +49 -33
- data/spec/rspec/core/formatters/html_formatted-1.8.7.html +5 -5
- data/spec/rspec/core/formatters/html_formatted-1.9.1.html +46 -26
- data/spec/rspec/core/formatters/html_formatted-1.9.2.html +5 -5
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.6.html +49 -33
- data/spec/rspec/core/formatters/text_mate_formatted-1.8.7.html +19 -19
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.1.html +56 -33
- data/spec/rspec/core/formatters/text_mate_formatted-1.9.2.html +26 -38
- data/spec/rspec/core/metadata_spec.rb +153 -132
- data/spec/rspec/core/pending_example_spec.rb +133 -25
- data/spec/rspec/core/rake_task_spec.rb +25 -32
- data/spec/rspec/core/subject_spec.rb +15 -0
- data/spec/rspec/core/world_spec.rb +72 -61
- data/spec/spec_helper.rb +0 -14
- metadata +25 -135
- data/features/hooks/halt.feature +0 -26
data/Gemfile
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
+
%w[rspec-core rspec-expectations rspec-mocks].each do |lib|
|
4
|
+
gem lib, :path => File.expand_path("../../#{lib}", __FILE__)
|
5
|
+
end
|
6
|
+
|
3
7
|
gem "rake"
|
4
8
|
gem "cucumber", "0.8.5"
|
5
9
|
gem "aruba", "0.2.2"
|
@@ -11,9 +15,10 @@ gem "rr"
|
|
11
15
|
gem "flexmock"
|
12
16
|
gem "nokogiri"
|
13
17
|
gem "syntax"
|
14
|
-
gem "
|
15
|
-
gem "
|
16
|
-
gem "
|
18
|
+
gem "relish", "~> 0.0.3"
|
19
|
+
gem "guard-rspec"
|
20
|
+
gem "growl"
|
21
|
+
gem "rb-fsevent"
|
17
22
|
|
18
23
|
unless RUBY_PLATFORM == "java"
|
19
24
|
gem "ruby-prof"
|
data/Guardfile
ADDED
data/History.markdown
CHANGED
@@ -1,11 +1,41 @@
|
|
1
1
|
## rspec-core release history (incomplete)
|
2
2
|
|
3
|
+
### 2.1.0 / 2010-11-07
|
4
|
+
|
5
|
+
[full changelog](http://github.com/rspec/rspec-core/compare/v2.0.1...v2.1.0)
|
6
|
+
|
7
|
+
* Enhancments
|
8
|
+
* Add skip_bundler option to rake task to tell rake task to ignore the
|
9
|
+
presence of a Gemfile (jfelchner)
|
10
|
+
* Add gemfile option to rake task to tell rake task what Gemfile to look
|
11
|
+
for (defaults to 'Gemfile')
|
12
|
+
* Allow passing caller trace into Metadata to support extensions (Glenn
|
13
|
+
Vanderburg)
|
14
|
+
* Add deprecation warning for Spec::Runner.configure to aid upgrade from
|
15
|
+
RSpec-1
|
16
|
+
* Add deprecated Spec::Rake::SpecTask to aid upgrade from RSpec-1
|
17
|
+
* Add 'autospec' command with helpful message to aid upgrade from RSpec-1
|
18
|
+
* Add support for filtering with tags on CLI (Lailson Bandeira)
|
19
|
+
* Add a helpful message about RUBYOPT when require fails in bin/rspec
|
20
|
+
(slyphon)
|
21
|
+
* Add "-Ilib" to the default rcov options (Tianyi Cui)
|
22
|
+
* Make the expectation framework configurable (default rspec, of course)
|
23
|
+
(Justin Ko)
|
24
|
+
* Add 'pending' to be conditional (Myron Marston)
|
25
|
+
* Add explicit support for :if and :unless as metadata keys for conditional run
|
26
|
+
of examples (Myron Marston)
|
27
|
+
* Add --fail-fast command line option (Jeff Kreeftmeijer)
|
28
|
+
|
29
|
+
* Bug fixes
|
30
|
+
* Eliminate stack overflow with "subject { self }"
|
31
|
+
* Require 'rspec/core' in the Raketask (ensures it required when running rcov)
|
32
|
+
|
3
33
|
### 2.0.1 / 2010-10-18
|
4
34
|
|
5
35
|
[full changelog](http://github.com/rspec/rspec-core/compare/v2.0.0...v2.0.1)
|
6
36
|
|
7
37
|
* Bug fixes
|
8
|
-
*
|
38
|
+
* Restore color when using spork + autotest
|
9
39
|
* Pending examples without docstrings render the correct message (Josep M. Bach)
|
10
40
|
* Fixed bug where a failure in a spec file ending in anything but _spec.rb would
|
11
41
|
fail in a confusing way.
|
@@ -28,7 +58,7 @@
|
|
28
58
|
|
29
59
|
* Enhancements
|
30
60
|
* implicitly require unknown formatters so you don't have to require the
|
31
|
-
file explicitly on the commmand line (Michael Grosser)
|
61
|
+
file explicitly on the commmand line (Michael Grosser)
|
32
62
|
* add --out/-o option to assign output target
|
33
63
|
* added fail_fast configuration option to abort on first failure
|
34
64
|
* support a Hash subject (its([:key]) { should == value }) (Josep M. Bach)
|
data/README.markdown
CHANGED
@@ -2,13 +2,20 @@
|
|
2
2
|
|
3
3
|
Behaviour Driven Development for Ruby
|
4
4
|
|
5
|
-
##
|
5
|
+
## Documentation
|
6
6
|
|
7
|
-
|
7
|
+
* [Cucumber features](http://relishapp.com/rspec/rspec-core/v/2-0)
|
8
|
+
* [RDoc](http://rubydoc.info/gems/rspec-core/2.0.1/frames)
|
8
9
|
|
9
10
|
## Install
|
10
11
|
|
11
|
-
gem install rspec -
|
12
|
+
gem install rspec # for rspec-core, rspec-expectations, rspec-mocks
|
13
|
+
gem install rspec-core # for rspec-core only
|
14
|
+
|
15
|
+
## Upgrading from rspec-1.x
|
16
|
+
|
17
|
+
See [Upgrade.markdown](http://github.com/rspec/rspec-core/blob/master/Upgrade.markdown)
|
18
|
+
|
12
19
|
|
13
20
|
This will install the rspec, rspec-core, rspec-expectations and rspec-mocks
|
14
21
|
gems.
|
data/Rakefile
CHANGED
@@ -18,10 +18,6 @@ class Cucumber::Rake::Task::ForkedCucumberRunner
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
task :cleanup_rcov_files do
|
22
|
-
rm_rf 'coverage.data'
|
23
|
-
end
|
24
|
-
|
25
21
|
desc "Run all examples"
|
26
22
|
RSpec::Core::RakeTask.new(:spec) do |t|
|
27
23
|
t.rspec_path = 'bin/rspec'
|
@@ -30,25 +26,28 @@ end
|
|
30
26
|
|
31
27
|
Cucumber::Rake::Task.new(:cucumber)
|
32
28
|
|
33
|
-
namespace :
|
34
|
-
|
35
|
-
|
29
|
+
namespace :rcov do
|
30
|
+
task :cleanup do
|
31
|
+
rm_rf 'coverage.data'
|
32
|
+
end
|
33
|
+
|
34
|
+
RSpec::Core::RakeTask.new :spec do |t|
|
36
35
|
t.rcov = true
|
37
36
|
t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
|
38
|
-
t.rcov_opts << %[--
|
37
|
+
t.rcov_opts << %[--no-html --aggregate coverage.data]
|
39
38
|
end
|
40
|
-
end
|
41
39
|
|
42
|
-
|
43
|
-
desc "Run cucumber features using rcov"
|
44
|
-
Cucumber::Rake::Task.new :rcov => :cleanup_rcov_files do |t|
|
40
|
+
Cucumber::Rake::Task.new :cucumber do |t|
|
45
41
|
t.cucumber_opts = %w{--format progress}
|
46
42
|
t.rcov = true
|
47
43
|
t.rcov_opts = %[-Ilib -Ispec --exclude "gems/*,features"]
|
48
44
|
t.rcov_opts << %[--text-report --sort coverage --aggregate coverage.data]
|
49
45
|
end
|
46
|
+
|
50
47
|
end
|
51
48
|
|
49
|
+
task :rcov => ["rcov:cleanup", "rcov:spec", "rcov:cucumber"]
|
50
|
+
|
52
51
|
task :default => [:spec, :cucumber]
|
53
52
|
|
54
53
|
task :clobber do
|
@@ -60,7 +59,7 @@ end
|
|
60
59
|
desc "Push cukes to relishapp using the relish-client-gem"
|
61
60
|
task :relish, :version do |t, args|
|
62
61
|
raise "rake relish[VERSION]" unless args[:version]
|
63
|
-
sh "
|
62
|
+
sh "relish push --organization rspec --project rspec-core -v #{args[:version]}"
|
64
63
|
end
|
65
64
|
|
66
65
|
Rake::RDocTask.new do |rdoc|
|
data/Upgrade.markdown
CHANGED
@@ -1,148 +1,67 @@
|
|
1
|
-
#
|
1
|
+
# New features in rspec-core-2.1
|
2
2
|
|
3
|
-
##
|
3
|
+
## Command line
|
4
4
|
|
5
|
-
###
|
6
|
-
|
7
|
-
The command to run specs is now `rspec` instead of `spec`.
|
8
|
-
|
9
|
-
rspec ./spec
|
10
|
-
|
11
|
-
#### Co-habitation of rspec-1 and rspec-2
|
12
|
-
|
13
|
-
Early beta versions of RSpec-2 included a `spec` command, which conflicted with
|
14
|
-
the RSpec-1 `spec` command because RSpec-1's was installed by the rspec gem,
|
15
|
-
while RSpec-2's is installed by the rspec-core gem.
|
16
|
-
|
17
|
-
If you installed one of these early versions, the safest bet is to uninstall
|
18
|
-
rspec-1 and rspec-core-2, and then reinstall both. After you do this, you will
|
19
|
-
be able to run rspec-2 like this:
|
20
|
-
|
21
|
-
`rspec ./spec`
|
22
|
-
|
23
|
-
... and rspec-1 like this:
|
24
|
-
|
25
|
-
`spec _1.3.1_ ./spec`
|
26
|
-
|
27
|
-
Rubygems inspects the first argument to any gem executable to see if it's
|
28
|
-
formatted like a version number surrounded by underscores. If so, it uses that
|
29
|
-
version (e.g. `1.3.1`). If not, it uses the most recent version (e.g.
|
30
|
-
`2.0.0`).
|
31
|
-
|
32
|
-
### rake task
|
33
|
-
|
34
|
-
The RSpec rake task has moved to:
|
35
|
-
|
36
|
-
'rspec/core/rake_task'
|
37
|
-
|
38
|
-
RCov options are now set directly on the Rake task:
|
39
|
-
|
40
|
-
RSpec::Core::RakeTask.new(:rcov) do |t|
|
41
|
-
t.rcov_opts = %q[--exclude "spec"]
|
42
|
-
end
|
43
|
-
|
44
|
-
In RSpec-1, the rake task would read in rcov options from an `rcov.opts`
|
45
|
-
file. This is ignored by RSpec-2.
|
46
|
-
|
47
|
-
### autotest
|
48
|
-
|
49
|
-
RSpec-2 works with autotest as follows:
|
50
|
-
|
51
|
-
rspec --configure autotest
|
52
|
-
|
53
|
-
This adds `./autotest/discover.rb` with:
|
54
|
-
|
55
|
-
Autotest.add_discovery { "rspec2" }
|
56
|
-
|
57
|
-
Now, on the command line just type:
|
58
|
-
|
59
|
-
autotest
|
60
|
-
|
61
|
-
Or, if you're using bundler:
|
62
|
-
|
63
|
-
bundle exec autotest
|
64
|
-
|
65
|
-
The `autospec` command is a thing of the past.
|
66
|
-
|
67
|
-
### RSpec is the new Spec
|
68
|
-
|
69
|
-
The root namespace (top level module) is now `RSpec` instead of `Spec`, and
|
70
|
-
the root directory under `lib` within all of the `rspec` gems is `rspec` instead of `spec`.
|
5
|
+
### `--tags`
|
71
6
|
|
72
|
-
|
73
|
-
|
74
|
-
Typically in `spec/spec_helper.rb`, configuration is now done like this:
|
7
|
+
Now you can tag groups and examples using metadata and access those tags from
|
8
|
+
the command line. So if you have a group with `:foo => true`:
|
75
9
|
|
76
|
-
|
77
|
-
|
10
|
+
describe "something", :foo => true do
|
11
|
+
it "does something" do
|
12
|
+
# ...
|
13
|
+
end
|
78
14
|
end
|
79
15
|
|
80
|
-
|
16
|
+
... now you can run just that group like this:
|
81
17
|
|
82
|
-
|
83
|
-
can also store a `.rspec` file in your home directory (`~/.rspec`) with global
|
84
|
-
options. Precedence is:
|
18
|
+
rspec spec --tags foo
|
85
19
|
|
86
|
-
|
87
|
-
./.rspec
|
88
|
-
~/.rspec
|
20
|
+
### `--fail-fast`
|
89
21
|
|
90
|
-
|
22
|
+
Add this flag to the command line to tell rspec to clean up and exit after the
|
23
|
+
first failure:
|
91
24
|
|
92
|
-
|
93
|
-
running specs. The current version (3.4.7) still assumes RSpec-1. To bring its
|
94
|
-
Rakefile into conformance with RSpec-2 a few changes are necessary.
|
25
|
+
rspec spec --fail-fast
|
95
26
|
|
96
|
-
|
27
|
+
## Metata/filtering
|
97
28
|
|
98
|
-
|
99
|
-
the `rspec` command no longer supports the `--options` command line option
|
100
|
-
so the options must be embedded directly in the Rakefile, or stored in the
|
101
|
-
`.rspec` files mentioned above.
|
29
|
+
### :if and :unless keys
|
102
30
|
|
103
|
-
|
104
|
-
|
105
|
-
Here is a complete example:
|
106
|
-
|
107
|
-
# rspec-1
|
108
|
-
Spec::Rake::SpecTask.new do |t|
|
109
|
-
t.spec_opts = ['--options', "\"spec/spec.opts\""]
|
110
|
-
t.spec_files = FileList['spec/**/*.rb']
|
111
|
-
end
|
112
|
-
|
113
|
-
becomes:
|
31
|
+
Use :if and :unless keys to conditionally run examples with simple boolean
|
32
|
+
expressions:
|
114
33
|
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
34
|
+
describe "something" do
|
35
|
+
it "does something", :if => RUBY_VERSION == 1.8.6 do
|
36
|
+
# ...
|
37
|
+
end
|
38
|
+
it "does something", :unless => RUBY_VERSION == 1.8.6 do
|
39
|
+
# ...
|
40
|
+
end
|
119
41
|
end
|
120
42
|
|
121
|
-
|
43
|
+
## Conditionally 'pending' examples
|
122
44
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
alias :context :describe
|
128
|
-
|
129
|
-
Of course, you can still use `context` to declare a nested group:
|
45
|
+
Make examples pending based on a condition. This is most useful when you
|
46
|
+
have an example that runs in multiple contexts and fails in one of those due to
|
47
|
+
a bug in a third-party dependency that you expect to be fixed in the future.
|
130
48
|
|
131
49
|
describe "something" do
|
132
|
-
|
133
|
-
|
134
|
-
#
|
50
|
+
it "does something that doesn't yet work right on JRuby" do
|
51
|
+
pending("waiting for the JRuby team to fix issue XYZ", :if => RUBY_PLATFORM == 'java') do
|
52
|
+
# the content of your spec
|
135
53
|
end
|
136
54
|
end
|
137
55
|
end
|
138
56
|
|
139
|
-
|
57
|
+
This example would run normally on all ruby interpretters except JRuby. On JRuby,
|
58
|
+
it uses the block form of `pending`, which causes the example to still be run and
|
59
|
+
will remain pending as long as it fails. In the future, if you upgraded your
|
60
|
+
JRuby installation to a newer release that allows the example to pass, RSpec
|
61
|
+
will report it as a failure (`Expected pending '...' to fail. No Error was raised.`),
|
62
|
+
so that know that you can remove the call to `pending`.
|
140
63
|
|
141
|
-
|
142
|
-
things, the behaviour of Regular Expressions when applied to non-ascii
|
143
|
-
characters. This is no longer the case in RSpec-2.
|
144
|
-
|
145
|
-
## What's new
|
64
|
+
# New features in rspec-core-2.0
|
146
65
|
|
147
66
|
### Runner
|
148
67
|
|
@@ -233,3 +152,138 @@ NOTICE: The including example groups no longer have access to any of the
|
|
233
152
|
methods, hooks, or state defined inside a shared group. This will break specs
|
234
153
|
that were using shared example groups to extend the behavior of including
|
235
154
|
groups in any way besides their intended purpose: to add examples to a group.
|
155
|
+
|
156
|
+
# Upgrading from rspec-1.x
|
157
|
+
|
158
|
+
### rspec command
|
159
|
+
|
160
|
+
The command to run specs is now `rspec` instead of `spec`.
|
161
|
+
|
162
|
+
rspec ./spec
|
163
|
+
|
164
|
+
#### Co-habitation of rspec-1 and rspec-2
|
165
|
+
|
166
|
+
Early beta versions of RSpec-2 included a `spec` command, which conflicted with
|
167
|
+
the RSpec-1 `spec` command because RSpec-1's was installed by the rspec gem,
|
168
|
+
while RSpec-2's is installed by the rspec-core gem.
|
169
|
+
|
170
|
+
If you installed one of these early versions, the safest bet is to uninstall
|
171
|
+
rspec-1 and rspec-core-2, and then reinstall both. After you do this, you will
|
172
|
+
be able to run rspec-2 like this:
|
173
|
+
|
174
|
+
rspec ./spec
|
175
|
+
|
176
|
+
... and rspec-1 like this:
|
177
|
+
|
178
|
+
spec _1.3.1_ ./spec
|
179
|
+
|
180
|
+
Rubygems inspects the first argument to any gem executable to see if it's
|
181
|
+
formatted like a version number surrounded by underscores. If so, it uses that
|
182
|
+
version (e.g. `1.3.1`). If not, it uses the most recent version (e.g.
|
183
|
+
`2.0.0`).
|
184
|
+
|
185
|
+
### rake task
|
186
|
+
|
187
|
+
A few things changed in the Rake task used to run specs:
|
188
|
+
|
189
|
+
1. The file in which it is defined changed from `spec/rake/spectask` to
|
190
|
+
`rspec/core/rake_task`
|
191
|
+
|
192
|
+
2. The `spec_opts` accessor has been deprecated in favor of `rspec_opts`. Also,
|
193
|
+
the `rspec` command no longer supports the `--options` command line option
|
194
|
+
so the options must be embedded directly in the Rakefile, or stored in the
|
195
|
+
`.rspec` files mentioned above.
|
196
|
+
|
197
|
+
3. In RSpec-1, the rake task would read in rcov options from an `rcov.opts`
|
198
|
+
file. This is ignored by RSpec-2. RCov options are now set directly on the Rake
|
199
|
+
task:
|
200
|
+
|
201
|
+
RSpec::Core::RakeTask.new(:rcov) do |t|
|
202
|
+
t.rcov_opts = %q[--exclude "spec"]
|
203
|
+
end
|
204
|
+
|
205
|
+
3. The `spec_files` accessor has been replaced by `pattern`.
|
206
|
+
|
207
|
+
# rspec-1
|
208
|
+
require 'spec/rake/spectask'
|
209
|
+
|
210
|
+
Spec::Rake::SpecTask.new do |t|
|
211
|
+
t.spec_opts = ['--options', "\"spec/spec.opts\""]
|
212
|
+
t.spec_files = FileList['spec/**/*.rb']
|
213
|
+
end
|
214
|
+
|
215
|
+
# rspec-2
|
216
|
+
require 'rspec/core/rake_task'
|
217
|
+
|
218
|
+
RSpec::Core::RakeTask.new do |t|
|
219
|
+
t.rspec_opts = ["-c", "-f progress", "-r ./spec/spec_helper.rb"]
|
220
|
+
t.pattern = 'spec/**/*_spec.rb'
|
221
|
+
end
|
222
|
+
|
223
|
+
### autotest
|
224
|
+
|
225
|
+
RSpec-2 works with autotest as follows:
|
226
|
+
|
227
|
+
rspec --configure autotest
|
228
|
+
|
229
|
+
This adds `./autotest/discover.rb` with:
|
230
|
+
|
231
|
+
Autotest.add_discovery { "rspec2" }
|
232
|
+
|
233
|
+
Now, on the command line just type:
|
234
|
+
|
235
|
+
autotest
|
236
|
+
|
237
|
+
Or, if you're using bundler:
|
238
|
+
|
239
|
+
bundle exec autotest
|
240
|
+
|
241
|
+
The `autospec` command is a thing of the past.
|
242
|
+
|
243
|
+
### RSpec is the new Spec
|
244
|
+
|
245
|
+
The root namespace (top level module) is now `RSpec` instead of `Spec`, and
|
246
|
+
the root directory under `lib` within all of the `rspec` gems is `rspec` instead of `spec`.
|
247
|
+
|
248
|
+
### Configuration
|
249
|
+
|
250
|
+
Typically in `spec/spec_helper.rb`, configuration is now done like this:
|
251
|
+
|
252
|
+
RSpec.configure do |c|
|
253
|
+
# ....
|
254
|
+
end
|
255
|
+
|
256
|
+
### .rspec
|
257
|
+
|
258
|
+
Command line options can be persisted in a `.rspec` file in a project. You
|
259
|
+
can also store a `.rspec` file in your home directory (`~/.rspec`) with global
|
260
|
+
options. Precedence is:
|
261
|
+
|
262
|
+
command line
|
263
|
+
./.rspec
|
264
|
+
~/.rspec
|
265
|
+
|
266
|
+
### `context` is no longer a top-level method
|
267
|
+
|
268
|
+
We removed `context` from the main object because it was creating conflicts with
|
269
|
+
IRB and some users who had `Context` domain objects. `describe` is still there,
|
270
|
+
so if you want to use `context` at the top level, just alias it:
|
271
|
+
|
272
|
+
alias :context :describe
|
273
|
+
|
274
|
+
Of course, you can still use `context` to declare a nested group:
|
275
|
+
|
276
|
+
describe "something" do
|
277
|
+
context "in some context" do
|
278
|
+
it "does something" do
|
279
|
+
# ...
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
### `$KCODE` no longer set implicitly to `'u'`
|
285
|
+
|
286
|
+
In RSpec-1, the runner set `$KCODE` to `'u'`, which impacts, among other
|
287
|
+
things, the behaviour of Regular Expressions when applied to non-ascii
|
288
|
+
characters. This is no longer the case in RSpec-2.
|
289
|
+
|