skip to Main Content

What error I’m getting

  • zsh: command not found: rspec

What I’m trying to do:

  • Run $ rspec inside my rails app

What I’ve done so far

  1. Run $ bundle
  2. Run $ rails generate rspec:install
  3. Run $ gem install rspec
  4. Run $ sudo gem install rspec
  5. Run $ bundle update rspec-rails
  6. Run $ bundle binstubs rspec-core

My Gemfile

git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.7.4'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails', branch: 'main'
gem 'rails', '~> 6.1.4'
gem 'pg'
# Use Puma as the app server
gem 'puma', '~> 5.0'
# Use SCSS for stylesheets
gem 'sass-rails', '>= 6'
# Transpile app-like JavaScript. Read more: https://github.com/rails/webpacker
gem 'webpacker', '~> 5.0'
# Turbolinks makes navigating your web application faster. Read more: https://github.com/turbolinks/turbolinks
gem 'turbolinks', '~> 5'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.7'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use Active Model has_secure_password
# gem 'bcrypt', '~> 3.1.7'

# Use Active Storage variant
# gem 'image_processing', '~> 1.2'

# Reduces boot times through caching; required in config/boot.rb
gem 'bootsnap', '>= 1.4.4', require: false

group :development, :test do
  # Call 'byebug' anywhere in the code to stop execution and get a debugger console
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
  gem 'rspec-rails'

end

group :development do
  # Access an interactive console on exception pages or by calling 'console' anywhere in the code.
  gem 'web-console', '>= 4.1.0'
  # Display performance information such as SQL time and flame graphs for each request in your browser.
  # Can be configured to work on production as well see: https://github.com/MiniProfiler/rack-mini-profiler/blob/master/README.md
  gem 'rack-mini-profiler', '~> 2.0'
  gem 'listen', '~> 3.3'
  # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
  gem 'spring'
end

group :test do
  # Adds support for Capybara system testing and selenium driver
  gem 'capybara', '>= 3.26'
  gem 'selenium-webdriver'
  # Easy installation and use of web drivers to run system tests with browsers
  gem 'webdrivers'
end

# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

Below is the spec file I’m trying to execute using rspec
enter image description here

My setup

  • ruby 2.7.4p191
  • Rails 6.1.4

By the way I’m not having any problem running my spec using $ bundle exec rspec. I’m just curious how can I test my specs using the command $ rspec which most likely I will be using all throughout my career as a rails developer.

2

Answers


  1. If you are working with bundler, most of the time you’ll want to run gems under de bundled context; for rspec that is always true. You should either be using bundle exec (which you can alias to something shorter), or use the binstub with bin/rspec.

    If you add ./bin to your PATH environment variable, you can run binstubs without needing to prefix with bin/; so you could do just rspec to call the binstub.

    Login or Signup to reply.
  2. Prepending bundle exec tells the bundler to execute this command in context of the current bundle.

    Try doing the following steps:-

    gem install rubygems-bundler

    gem regenerate_binstubs

    Then try using rspec without bundle exec

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search