我可以抑制某些rspec预期的输出吗?

时间:2013-12-02 00:09:02

标签: ruby-on-rails rspec

按输出我的意思是.F*用于传递,失败或待定期望。我可以让某些期望不显示吗?

describe User do
    it "one"
    it "two"
    it "three"
end

这导致:

***

Pending:
  User one
    # Not yet implemented
    # ./spec/model/user_spec.rb:89
  User two
    # Not yet implemented
    # ./spec/model/user_spec.rb:90
  User three
    # Not yet implemented
    # ./spec/model/user_spec.rb:91

Finished in 0.00063 seconds
3 examples, 0 failures, 3 pending

是否有可能沿着这些方向做点什么:

describe User do
    it "one"
    it "two", no_display: true
    it "three"
end

所以我得到了这个输出(注意*期望two不存在):

**

Pending:
  User one
    # Not yet implemented
    # ./spec/model/user_spec.rb:89
  User two
    # Not yet implemented
    # ./spec/model/user_spec.rb:90
  User three
    # Not yet implemented
    # ./spec/model/user_spec.rb:91

Finished in 0.00063 seconds
3 examples, 0 failures, 3 pending

也许某种以前的方法可以做到这一点?我只是创建一些自定义输出来帮助我进行RoR模型验证,显示验证错误的期望(它需要访问subject变量),这本身就是一种期望它在我的控制台上留下了一个略微混乱的尾随点。

这是一个小问题,但如果它可以被压制,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

是的,您可以提供自己的“自定义格式化程序”并控制此输出和输出的任何其他方面。 https://relishapp.com/rspec/rspec-core/v/2-14/docs/formatters/custom-formattershttp://rubydoc.info/gems/rspec-core/RSpec/Core/Formatters

描述了指定自己的格式化程序的机制

虽然我还没有对它进行过测试,但是如果你只想让单字符结果摘要静音,或者让它们依赖于一个示例属性,你可以重新定义example_passed,{{1} }和example_failed方法。

默认example_pending的代码位于https://github.com/rspec/rspec-core/blob/b9293ae4e3ea19d0214ffa2f3ec4e87acc54debd/lib/rspec/core/formatters/progress_formatter.rb