RSpec - 找不到命令

16
作为作业的一部分,我正在创建一个基本的网站。当Rails服务器未运行并且我在根目录下执行“rspec”时,会执行rspec。然而,测试会失败。当我启动Rails服务器并从另一个终端窗口执行rspec(在进入根目录后),rspec就不起作用了。我得到以下信息 -
请告诉我如何修复它。
5个回答

34

也许你的rspec命令没有系统范围内安装,没关系,尝试运行

bundle exec rspec

应该可以正常工作。


1
这立刻解决了我的问题。能否解释一下是什么原因导致的? - stevec
1
我有同样的问题。如果您同时提供解决方案,那就太好了。 - Aboozar Rajabi
你可能需要运行 bundle - chet corey

7
我使用了gem install rspec来解决这个问题。还有另外一个解决方法,但我没有尝试过:sudo gem install rspec。另外一个是bundle exec rspec spec

2

您不需要运行Rails服务器来执行Rspec。 Rspec是独立运行的。只需运行rspec spec即可。它将运行您在项目spec文件夹中编写的规范。

如果您需要同时运行两者,则需要执行以下操作。可能有效,请尝试一下。

添加到您的Gem文件:

group :development, :test do
  gem 'rspec-rails'
end

从您的控制台下载捆绑包。
bundle
rails generate rspec:install

1
我在开发一个Rails 6应用时也遇到了同样的挑战:
在我的Gemfile中添加了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/rspecrspec

bundle binstubs rspec-core

注意:在运行命令后,请关闭当前的终端/Shell并打开一个新的终端/Shell。

现在,您可以运行命令rspec,一切都会很好。


0

从 Rails 7 开始使用

**bin/bundle exec rspec spec**

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接