我有spork运行来加速我的测试但是当我运行时没有输出。是否需要修改配置?
答案 0 :(得分:7)
刚刚遇到这个问题,在spork 1.0.0rc4和rspec 2.14.1 / rspec-core 2.14.8上运行。据我所知,问题在于:
此外,从不设置RSpec.configuration.output_stream。最重要的是,将此代码添加到Spork.each_run似乎可以解决问题:
if Spork.using_spork?
RSpec.configure do |config|
config.reset
config.output_stream = $stdout
end
end
如果有人知道更优雅的方法来解决这个问题,请告诉我们!
答案 1 :(得分:0)
@astgtciv已经回答了这个问题,但这是我遇到的一个相关的事情,这篇文章作为评论写得太久了:
使用@ astgtciv的修复程序对我有用,但是当我介绍自定义格式化程序时它再次破坏了。我的猜测是,当Spork引导时格式化器被初始化,因此它的输出流在DRB服务器窗口而不是测试运行器窗口。
我的修复是将attr_accessor :output
添加到我的自定义格式化程序,然后更改Spork.each_run
内的输出,例如:
rspec_formatters = RSpec.configuration.formatters
Spork.each_run do
if Spork.using_spork?
RSpec.configure do |config|
config.output_stream = $stdout
end
rspec_formatters.each do |formatter|
if formatter.respond_to?(:output=)
formatter.output = $stdout
end
end
end
end
更简单的解决方法是在此代码块中添加格式化程序,但我认为这可能更快(就测试运行速度而言)而且不会冒多次添加相同格式化程序的风险。虽然没有证实这个猜测。