Ruby-rspec - 如何打印出测试(组)名称

时间:2013-10-15 01:57:06

标签: ruby rspec

如果我有一些测试,例如

  require_relative "Line"
  require_relative "LineParser"

  describe Line do

    it "Can be created" do
      load "spec_helper.rb"
      @line.class.should == Line
    end 
    it "Can be parsed" do
    ...

如何打印测试组名称 - 在这种情况下为“Line”。

我尝试添加:

    before :all do
      puts "In #{self.class}"
    end

但是这会产生:In RSpec::Core::ExampleGroup::Nested_3,而不是Line

3 个答案:

答案 0 :(得分:10)

您可能有特定的理由想要在测试期间访问测试名称...但是,为了满足您的需求,只需在测试报告中输出行,我喜欢这样的配置:

RSpec.configure do |config|

   # Use color in STDOUT
  config.color_enabled = true

  # Use color not only in STDOUT but also in pagers and files
  config.tty = true

  # Use the specified formatter
  config.formatter = :documentation 

end

这给我的输出如下:

MyClassName
  The initialization process
    should accept two optional arguments

答案 1 :(得分:4)

答案结果是:

  before :all do
    puts "In #{self.class.description}"
  end

$ rspec line_spec.rb 
In Line

答案 2 :(得分:2)

RSpec将read command line arguments from a file,因此您可以将以下内容添加到项目根目录中的preventDefault文件中:

.rspec

(此文件可能已存在,具体取决于您为RSpec使用的gem以及如何安装它。)