I'm following an entry-level tutorial on rspec here, and I've created a very simple test at spec\lib\zombie_spec.rb
:
require "spec_helper"
describe "A Zombie" do
#Your 'examples' (tests) go here.
it "is named Ash"
end
If I run this test from the gnome-terminal, everything works as expected:
Pending: (Failures listed here are expected and do not affect your suite's status)
1) A Zombie is named Ash
# Not yet implemented
# ./spec/lib/zombie_spec.rb:4
Finished in 0.00049 seconds (files took 0.09118 seconds to load)
1 example, 0 failures, 1 pending
However, if I try to run the same code from emacs' shell
or ansi-term
, I get this:
The program 'rspec' is currently not installed. You can install it by typing:
sudo apt install ruby-rspec-core
After installing ruby-rspec-core
and trying to run the test again, I get this:
/home/adc/odin-project/web-development-101/20-code-school-rspec/zombie/spec/spec_helper.rb:48:in `block in <top (required)>': undefined method `shared_context_metadata_behavior=' for #<RSpec::Core::Configuration:0x00000000eed1d0> (NoMethodError)
from /usr/lib/ruby/vendor_ruby/rspec/core.rb:97:in `configure'
from /home/adc/odin-project/web-development-101/20-code-school-rspec/zombie/spec/spec_helper.rb:19:in `<top (required)>'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/2.3.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:1295:in `block in requires='
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:1295:in `each'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration.rb:1295:in `requires='
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration_options.rb:109:in `block in process_options_into'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration_options.rb:108:in `each'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration_options.rb:108:in `process_options_into'
from /usr/lib/ruby/vendor_ruby/rspec/core/configuration_options.rb:21:in `configure'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:105:in `setup'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:92:in `run'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:78:in `run'
from /usr/lib/ruby/vendor_ruby/rspec/core/runner.rb:45:in `invoke'
from /usr/bin/rspec:4:in `<main>'
How can I fix this so that rspec runs successfully from within the emacs shell?