让我先说我是 Ruby 的新手。
我正在 RubyMine 中做一个关于 Ruby 的非常基础的教程,作为教程的一部分,我们在一个名为 thing.rb 的 .rb Ruby 文件中创建了一个类。除了课程之外,本教程还让我们将 Rspec 测试放在同一个 .rb 文件中。.rb 文件如下所示:
require 'rspec'
class Thing
def value
5
end
end
describe Thing do
it "should have a value of 6" do
Thing.new.value.should eq(7)
end
end
如果我右键单击项目文件夹并“运行项目中的所有规范”,我会收到错误和消息,包括“找到 0 个文件”和“空测试套件”。如果我只运行 rb 脚本,我不会收到任何错误...脚本运行良好。
奇怪的是,如果我将第二个文件添加到名为 thing_spec.rb 的项目中,并且只放入上面的测试:
require 'rspec'
require_relative 'thing'
describe Thing do
it "should have a value of 6" do
Thing.new.value.should eq(7)
end
end
然后右键单击项目并选择“运行所有规范”,测试运行正常。注意我说的是测试(复数)...RubyMine 将运行 thing.rb 中的测试和 thing_spec.rb 中的测试。
为什么它不能识别 thing.rb 中的测试而无需添加第二个名为 thing_spec.rb 的文件?这对我来说毫无意义。无论如何我可以让它从 thing.rb 中运行 rspec 测试而不必创建第二个文件?
如果这很重要:我在 Mac 上工作,拥有 RubyMine 4.5 版,使用 ruby 解释器 1.9.3,rspec 2.12.0。