在RSpec中获取额外的信息(:每个)

时间:2012-09-29 21:39:20

标签: ruby-on-rails ruby unit-testing rspec

我正在使用RSpec,我希望在完成每个测试后得到结果(通过与否),类名,测试名称(或描述)和错误消息(如果存在)

所以这是一个非常简单的代码

  describe MyClass do

    after :each do
      #how do I know a test passed, its name, class name and error message?
    end

    it "should be true" do 
        5.should be 5
    end

    it "should be false" do 
        5.should be 6
    end

   end

您的建议?

2 个答案:

答案 0 :(得分:1)

您可以从格式化程序获取额外信息,但由于after挂钩是潜在的失败点,因此它们不会自行公开失败信息。

请参阅https://www.relishapp.com/rspec/rspec-core/v/2-11/docs/formatters/custom-formattershttps://github.com/rspec/rspec-core/blob/master/lib/rspec/core/formatters/base_formatter.rb

答案 1 :(得分:1)

有一些用于测试输出的格式化程序可以显示哪些测试通过/失败/未决,并且听起来您对名为documentation的测试感兴趣。

为了使此格式化程序可用于所有rspec文件,请创建一个名为.rspec的文件,其中包含以下内容:

--color  # I just like this one for more easily read output
--formatter documentation

这意味着当您运行上面的测试套件时,您会看到:

MyClass
  should be true
  should be false (Failed - 1)

  # Individual output for each error would show up down here

参考:https://www.relishapp.com/rspec/rspec-core/v/2-11/docs/formatters/custom-formatters