有没有办法让rspec
只打印失败的例子而没有任何其他信息?
我希望输出如下:
Finished in 2.35 seconds (files took 7.33 seconds to load)
1207 examples, 40 failures, 15 pending
谢谢
答案 0 :(得分:5)
开箱即用RSpec没有与您想要的输出相匹配的格式化程序。但是,可以编写自己的格式化程序。
这是RSpec 3 +
的样子RSpec::Support.require_rspec_core "formatters/base_text_formatter"
class SimpleFormatter < RSpec::Core::Formatters::BaseTextFormatter
RSpec::Core::Formatters.register self, :example_passed, :example_pending, :example_failed, :dump_pending, :dump_failures, :dump_summary
def example_passed(message)
# Do nothing
end
def example_pending(message)
# Do nothing
end
def example_failed(message)
# Do nothing
end
def dump_pending(message)
# Do nothing
end
def dump_failures(message)
end
def dump_summary(message)
colorizer = ::RSpec::Core::Formatters::ConsoleCodes
output.puts "\nFinished in #{message.formatted_duration} " \
"(files took #{message.formatted_load_time} to load)\n" \
"#{message.colorized_totals_line(colorizer)}\n"
end
end
# Example from RSpec Core - https://github.com/rspec/rspec-core/blob/bc1482605763cc16efa55c98b8da64a89c8ff5f9/lib/rspec/core/formatters/base_text_formatter.rb
然后从命令行运行rspec spec/ -r ./path/to/formatter -f SimpleFormatter
。
为避免不断输入-r
和-f
选项,您可以将它们放在.rspec
--require ./path/to/formatter
--format SimpleFormatter
现在只需运行rspec spec/
就会自动使用我们刚创建的格式化程序。