10

如果我有一些测试,例如

  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

4

3 回答 3

18

您可能有特定的原因希望在测试时访问测试名称......但是,以防万一它符合您的需要,只需在测试报告中提供行输出,我喜欢这种配置:

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
于 2013-10-15T02:13:41.787 回答
6

RSpec 将从文件中读取命令行参数,因此您可以将以下内容添加到.rspec项目根目录中的文件中:

--format documentation
--color

(此文件可能已经存在,具体取决于您用于 RSpec 的 gem 以及您安装它的方式。)

于 2018-06-08T11:36:57.463 回答
5

答案原来是:

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

$ rspec line_spec.rb 
In Line
于 2013-10-15T02:05:01.633 回答