Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 尝试运行rspec测试文件,它可以';我找不到_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails 尝试运行rspec测试文件,它可以';我找不到

Ruby on rails 尝试运行rspec测试文件,它可以';我找不到,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,我试图学习RSpec,因此从一个简单的计算器程序开始 对如何让rspec找到文件感到困惑,因为它一直说它无法加载它 这是迄今为止的过程: 1 计算器类被编写并保存为Calculator.rb文件。创建lib文件夹并将calculator.rb文件移动到其中 2 在初始目录(即lib文件夹之外)中,irspec--init创建.rspec文件&rspec/spec\u helper.rb文件 3 然后我创建writecalculator\u spec.rb文件并将其放入rspec文件夹中。在cal

我试图学习RSpec,因此从一个简单的计算器程序开始

对如何让rspec找到文件感到困惑,因为它一直说它无法加载它

这是迄今为止的过程:

1 计算器类被编写并保存为
Calculator.rb
文件。创建
lib
文件夹并将
calculator.rb
文件移动到其中

2 在初始目录(即lib文件夹之外)中,i
rspec--init
创建
.rspec
文件&
rspec/spec\u helper.rb
文件

3 然后我创建write
calculator\u spec.rb
文件并将其放入
rspec
文件夹中。在
calculator\u spec.rb
文件的顶部,我有一个
require'calculator.rb'

4 我运行这个命令,
rspec calculator\u spec.rb
,我得到这个
“加载”:不能加载这样的文件

如何修复此问题,以便rspec命令可以找到该文件


谢谢

此命令将位于
spec/spec\u helper.rb

require File.join(File.dirname(__FILE__), '../lib/calculator.rb'])

不确定您正在使用哪个版本的RSpec,但除了默认的
.RSpec
文件外,它应该创建一个
spec
目录,而不是
RSpec

@吉姆·范·弗利特的回答应该很有效。但是,最佳做法是在
spec
目录下镜像代码目录。所以它应该是这样的:

我还要将以下内容添加到您的
计算器\u spec.rb
文件的顶部

require 'spec_helper'

require File.expand_path('../../../lib/calculator', __FILE__)

好的,请原谅我的困惑,需要那条线吗?我认为使用
RSpec
,可以运行一个通用命令,这样所有测试都可以运行。。。否则,我必须对每个文件都执行该行?另外,我现在运行它,同时在
lib
rspec
文件之外,再次出现无法加载错误…默认情况下,
rspec
不知道库的代码库。rspec spec_helper文件通常用于加载所需的入口点。对于将在lib中长期存在的代码库,按照惯例,该文件反过来需要库所需的任何其他文件或文件集。Rspec在测试方面有自己的约定。一般来说,您编写的满足
***\u spec.rb
regex的规范应该可以由
rspec
运行,不管您编写了多少规范。好吧,我没有意识到
rspec
不知道
lib
rspec
文件。我应该从这两个文件夹中取出所有文件并从父目录中运行吗?噢,哇。我只是取出所有这些文件,然后运行这个命令:
rspec calculator\u spec.rb--color
,它成功了!但我认为“约定”既是
lib
又是
spec
文件夹。。。