Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trialVishakha Agarwal
9,130 PointsGetting Depreciation Warning each time I run the test.
Each time I run the test I get the following warning along with the test results. What should I do?
Deprecation Warnings:
RSpec::Core::ExampleGroup#example is deprecated and will be removed in RSpec 3. There are a few options for what you can use instead:
- rspec-core's DSL methods (
it
,before
,after
,let
,subject
, etc) now yield the example as a block argument, and that is the recommended way to access the current example from those contexts. - The current example is now exposed via
RSpec.current_example
, which is accessible from any context. -
If you can't update the code at this call site (e.g. because it is in an extension gem), you can use this snippet to continue making this method available in RSpec 2.99 and RSpec 3:
RSpec.configure do |c| c.expose_current_running_example_as :example end
(Called from /Users/vishakhaagarwal/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/capybara-2.1.0/lib/capybara/rspec.rb:20:in `block (2 levels) in <top (required)>')
RSpec::Core::ExampleGroup#example is deprecated and will be removed in RSpec 3. There are a few options for what you can use instead:
- rspec-core's DSL methods (
it
,before
,after
,let
,subject
, etc) now yield the example as a block argument, and that is the recommended way to access the current example from those contexts. - The current example is now exposed via
RSpec.current_example
, which is accessible from any context. -
If you can't update the code at this call site (e.g. because it is in an extension gem), you can use this snippet to continue making this method available in RSpec 2.99 and RSpec 3:
RSpec.configure do |c| c.expose_current_running_example_as :example end
(Called from /Users/vishakhaagarwal/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/capybara-2.1.0/lib/capybara/rspec.rb:21:in `block (2 levels) in <top (required)>')
If you need more of the backtrace for any of these deprecations to
identify where to make the necessary changes, you can configure
config.raise_errors_for_deprecations!
, and it will turn the
deprecation warnings into errors, giving you the full backtrace.
Johannes Sunnhagen
Courses Plus Student 1,967 PointsYeah I get the same error... from what i can tell it is because we are using a newer version of RSpec where some methods are deprecated? But i have not found a "smooth" solution yet... I am totally new on Ruby and the Rails framework, it's my first back-end language that i confronted. I will post the solution here, if I find one....
Iv'e done a bunch of courses on teamtreehouse and they are always good! But this Rails todo list app has been VERY VERY upsetting / confusing / frustrating / (Maybe a little outdated???) !! Iv'e had to reinstall ruby, rails and other things several times and had to look for solutions on other sites for problems iv'e encountered from the very first video and every video after that because the instructions in the videos are not up to date with Rails!
First I installed a newer version of Ruby and Rails and then nothing worked anymore and i didn't find a solution, my bad because the instructions are for the older ruby on rails. So i reinstalled everything with the exact versions shown in the videos and I STILL got a bunch of errors, that i luckily found solutions for after some research. But it is time consuming and irritating when you think that the instructions should be correct for something you've never done before! At least post the solutions to common "new" errors because version updates or other things in the teachers notes!
Please do something about this course TTH !
Sorry for the negative comment, had to say it... I'm not the only one. ( Otherwise, you are AWESOME Treehouse ;D )
gmyauabalb
3,268 PointsI am also having the same issue, wish I knew how to make it go away. This course needs to be updated.
2 Answers
Otavio Gaiao
1,933 PointsI'm also having the same problem.... This course is confusing :/
gmyauabalb
3,268 PointsFound the solution here at the very bottom!
https://teamtreehouse.com/community/how-do-i-removed-these-depreciation-warnings
Jonathan Chua
4,136 PointsHere is everything I know about this issue after working through it myself. The specific solution seems to depend on the exact depreciation error that comes up and what the code in your odot/spec/spec_helper.rb file looks like.
If you see this:
rspec-rails 3 will no longer automatically infer an example group's spec type
from the file location. You can explicitly opt-in to this feature using this
snippet:
RSpec.configure do |config|
config.infer_spec_type_from_file_location!
end
then add this to the Rspec.configure do |config| block just above the line that contains end.
config.infer_spec_type_from_file_location!
My spec_helper.rb file already contained that line of code. My depreciation warning looked like this:
RSpec::Core::ExampleGroup#example is deprecated and will be removed
in RSpec 3. There are a few options for what you can use instead:
- rspec-core's DSL methods (`it`, `before`, `after`, `let`, `subject`, etc)
now yield the example as a block argument, and that is the recommended
way to access the current example from those contexts.
- The current example is now exposed via `RSpec.current_example`,
which is accessible from any context.
- If you can't update the code at this call site (e.g. because it is in
an extension gem), you can use this snippet to continue making this
method available in RSpec 2.99 and RSpec 3:
RSpec.configure do |c|
c.expose_current_running_example_as :example
end
The solution is to add this to the Rspec.configure do |c| block just above the line that contains end.
c.expose_current_running_example_as :example
However, my spec_helper.rb file does not contain a Rspec.configure do |c| block. Instead it has Rspec.configure do |config|.
In this case, the solution is to add this to the Rspec.configure do |config| block just above the line that contains end.
config.expose_current_running_example_as :example
What are deprecation warnings and why do these code snippets make them go away?
A depreciation warning tells you that in the next version of the software something will not work the way that it is working now in the current version. Adding these snippets explicitly tells rspec to continue behaving the same if and when you upgrade it to the next version. If a depreciation warning is ignored and the software is upgraded it will probably break your code and you'll have to rewrite a bunch of it to make it work again.
Satu Korhonen
3,360 PointsSatu Korhonen
3,360 PointsI am getting the same as well. What are they? What do I need to do now?