打印运行规范名称

时间:2010-09-27 21:43:46

标签: ruby-on-rails rspec

我在运行rake的rails应用程序的规范时遇到了问题,它在某个规范上冻结了。我想看看什么规格正在运行。

1 个答案:

答案 0 :(得分:4)

我有一个非常好笑的答案。

我发现的问题是规范的名称是成功或失败之后写的。在你的情况下,它永远不会发生。

所以你可以带一个自定义格式化器!是的,它会起作用。问题是基本格式化程序定义了许多点,例如组启动时,示例启动时,但可用的格式化程序(http://github.com/rspec/rspec-core/tree/master/lib/rspec/core/formatters/)不使用 example_started 方法,这正是你的方法需要。

创建自定义格式化程序很简单 - 只需将此文件放入spec / support / formatters / anxious_formatter.rb

class AnxiousFormatter < RSpec::Core::Formatters::DocumentationFormatter
  def example_started(example)
    message = "- #{example.description}"
    output.puts message
    output.flush
  end
end

然后你可以用:

运行它
spec -r spec/support/formatters/anxious_formatter.rb -f AnxiousFormatter spec/models/...

上面的示例适用于Rails 3和RSpec 2.0 - 对于以前的版本,它会略有不同。有关自定义格式化程序的更多信息(适用于Rails 2和RSpec 1.x)可以在项目维基上找到:http://wiki.github.com/dchelimsky/rspec/custom-formatters

好笑,不是吗?