作为作业的一部分,我正在创建一个基本的网站。当Rails服务器未运行并且我在根目录下执行“rspec”时,会执行rspec。然而,测试会失败。当我启动Rails服务器并从另一个终端窗口执行rspec(在进入根目录后),rspec就不起作用了。我得到以下信息 -
请告诉我如何修复它。
请告诉我如何修复它。
也许你的rspec
命令没有系统范围内安装,没关系,尝试运行
bundle exec rspec
应该可以正常工作。
gem install rspec
来解决这个问题。还有另外一个解决方法,但我没有尝试过:sudo gem install rspec
。另外一个是bundle exec rspec spec
。您不需要运行Rails服务器来执行Rspec。 Rspec是独立运行的。只需运行rspec spec
即可。它将运行您在项目spec文件夹中编写的规范。
如果您需要同时运行两者,则需要执行以下操作。可能有效,请尝试一下。
添加到您的Gem文件:
group :development, :test do
gem 'rspec-rails'
end
bundle
rails generate rspec:install
rspec
后,使用以下命令:group :test do
gem 'rspec-rails', '~> 5.0'
end
使用 bundle install
安装后,当我运行命令 rspec
时,出现以下错误:
rspec 命令未找到
以下是我的解决方法:
解决方案1
由于 rspec
并未全局安装在您的系统中,而是在您的项目中,因此您需要每次运行该命令:
bundle exec rspec
解决方案2
我们可以为rspec生成binstubs,这样就不需要使用冗长的bundle exec rspec
命令来运行测试了。只需使用以下命令即可运行测试:bin/rspec
或rspec
。
bundle binstubs rspec-core
注意:在运行命令后,请关闭当前的终端/Shell并打开一个新的终端/Shell。
现在,您可以运行命令rspec
,一切都会很好。
从 Rails 7 开始使用
**bin/bundle exec rspec spec**
bundle
。 - chet corey