Ruby on rails 使用rspec时获取错误
我正在做一个关于rspec的教程,每当我试图通过终端执行rake测试或手动运行rspec时,总是会出错。以下是我得到的:Ruby on rails 使用rspec时获取错误,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我正在做一个关于rspec的教程,每当我试图通过终端执行rake测试或手动运行rspec时,总是会出错。以下是我得到的: mes-mbp:00_hello Me$ ls hello.rb hello_spec.rb index.html mes-mbp:00_hello Me$ rspec 00_hello/hello_spec.rb /Users/Me/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_req
mes-mbp:00_hello Me$ ls
hello.rb hello_spec.rb index.html
mes-mbp:00_hello Me$ rspec 00_hello/hello_spec.rb
/Users/Me/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require': cannot load such file -- spec_helper (LoadError)
from /Users/Me/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181:in `block in requires='
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181:in `each'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181:in `requires='
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:110:in `block in process_options_into'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:109:in `each'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:109:in `process_options_into'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:22:in `configure'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:96:in `setup'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85:in `run'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70:in `run'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38:in `invoke'
from /Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/exe/rspec:4:in `<top (required)>'
from /Users/Me/.rvm/gems/ruby-2.2.0/bin/rspec:23:in `load'
from /Users/Me/.rvm/gems/ruby-2.2.0/bin/rspec:23:in `<main>'
from /Users/Me/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `eval'
from /Users/Me/.rvm/gems/ruby-2.2.0/bin/ruby_executable_hooks:15:in `<main>'
mes mbp:00\u你好我$ls
hello.rb hello_spec.rb index.html
mes mbp:00_hello Me$rspec 00_hello/hello_spec.rb
/Users/Me/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:“require”中:无法加载这样的文件--spec\u helper(LoadError)
来自/Users/Me/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/rubygems/core\u ext/kernel\u require.rb:54:in'require'
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181:in`block in requires='1
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181:in'each'
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration.rb:1181:in`requires='10
来自/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration\u options.rb:110:“进程中的块选项”中
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:109:in'each'
来自/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration\u options.rb:109:“进程中的选项”
来自/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/configuration_options.rb:22:in“configure”
来自/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:96:在“设置”中
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:85:in'run'
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:70:in'run'
from/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/lib/rspec/core/runner.rb:38:in'invoke'
来自/Users/Me/.rvm/gems/ruby-2.2.0/gems/rspec-core-3.2.3/exe/rspec:4:in`'
from/Users/Me/.rvm/gems/ruby-2.2.0/bin/rspec:23:in'load'
from/Users/Me/.rvm/gems/ruby-2.2.0/bin/rspec:23:in`'
from/Users/Me/.rvm/gems/ruby-2.2.0/bin/ruby\u executable\u hooks:15:in'eval'
来自/Users/Me/.rvm/gems/ruby-2.2.0/bin/ruby\u可执行文件\u hooks:15:in`'
谁能告诉我我做错了什么
编辑:有关我按要求所做工作的更多信息:
我跟随教程。在上面的代码中,我尝试在hello_spec.rb文件中的hello.rb文件上运行测试,该文件中包含“require hello”代码 您给RSpec的spec文件路径错误 当前工作目录是
00\u hello
mes-mbp:00_hello Me$ rspec 00_hello/hello_spec.rb
将导致RSpec查找00\u hello\00\u hello\hello\u spec.rb
如果运行了rspec--init
可能有一个.rspec
文件,如果该文件包含以下行,则需要spec\u helper.rb
:
--require spec_helper
编写规范时最常见的做法是将规范放置在名为spec
的目录中。这样,您就可以按运行所有项目规范
$ rspec specs
补充:
这是gems和其他ruby项目非常常见的结构:
lib/
hello.rb
spec/
spec_helper.rb
hello_spec.rb
它非常常见,RSpec会自动将/lib
和/spec
目录添加到加载路径
因此,您可以:
# spec/hello_spec.rb
require 'spec_helper'
require 'lib/hello' # instead of a relative path! Wehoo.
RSpec.describe Hello do
# ...
end
你能发布一些关于你正在做什么的更多信息吗?
touch spec\u helper.rb
我根本看不到spec\u helper
文件。这看起来甚至不像rails应用程序。也许是西纳特拉?您还需要在项目的根目录下运行rspec--init
。这将创建类似于spec\u helper
的文件。更多信息。那些教程已经非常过时了-我推荐类似的东西。您肯定不想开始使用RSpec2,然后必须学习新的RSpec3语法。