如果filename没有_spec后缀,RubyMine IDE能识别rspec测试吗?

时间:2013-01-03 09:56:54

标签: ruby rspec rubymine

让我先说一下我是Ruby的新手。

我正在使用RubyMine中的Ruby做一个非常基础的教程,作为教程的一部分,我们在一个名为thing.rb的.rb Ruby文件中创建一个类。除了这个类之外,本教程还让我们在同一个.rb文件中放入一个Rspec测试。 .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 interpreter 1.9.3,rspec 2.12.0。

1 个答案:

答案 0 :(得分:2)

如果你进入Run > Edit Configurations...

然后选择All Specs in <Your Project>,您会看到文件名掩码:**/*_spec.rb

这意味着当你告诉RubyMine运行“All Specs”时,它只运行与正则表达式匹配的文件。

现在,当您添加第二个文件并执行require_relative加载另一个文件时,两个测试都会运行。