根据this piece of documentation,可以通过选择格式documentation
来实现以下输出格式:
something
does something that passes
does something that fails (FAILED - 1)
does something that is pending (PENDING: Not Yet Implemented)
是否可以对此进行轻微编辑,使其输出为:
something
does something (SUCCESS)
does something (FAIL)
does something (PENDING)
基本上我希望无论如何显示测试结果 - 而不是仅仅明确记录故障和待处理的故障。
答案 0 :(得分:1)
我能够通过继承RSpec::Core::Formatters::DocumentationFormatter来做到这一点。将以下文件创建为spec/formatters/custom_formatter.rb
:
class CustomFormatter < RSpec::Core::Formatters::DocumentationFormatter
RSpec::Core::Formatters.register self
private
def passed_output(example)
format_output(example, 'SUCCESS', :success)
end
def pending_output(example, _message)
format_output(example, 'PENDING', :pending)
end
def failure_output(example)
format_output(example, 'FAILED', :failure)
end
def format_output(example, status_text, code_or_symbol)
RSpec::Core::Formatters::ConsoleCodes.wrap(
"#{current_indentation}#{example.description.strip} (#{status_text})",
code_or_symbol
)
end
end
然后使用以下命令运行规范:
rspec --require formatters/custom_formatter --format CustomFormatter
您可以在--require formatters/custom_formatter
上使用格式化程序,而不是spec/spec_helper.rb
,例如
require_relative 'formatters/custom_formatter'
然后你只需要运行它:
rspec --format CustomFormatter
如果希望CustomFormatter
成为默认格式化程序,可以在项目根目录中将命令行选项添加到.rspec
configuration file。这是它应该是这样的:
--require spec_helper
--require /path/to/custom_formatter.rb
--format CustomFormatter
这样,您不再需要指定任何命令行参数来使用CustomFormatter
。
文件和参考文献:
答案 1 :(得分:0)
您无法更改现有的RSpec格式化程序,但可以create your own
然而,当RSpec的内置输出格式化器不能提供所有内容时 你需要,你可以编写自己的自定义格式化程序并告诉RSpec使用它 一个而不是。最简单的方法是子类化RSpec的BaseTextFormatter,和 然后只覆盖你想要修改的方法。