【发布时间】:2014-03-07 00:57:29
【问题描述】:
我运行了 spork 来加速我的测试,但是运行它们时没有输出。有需要修改的配置吗?
【问题讨论】:
我运行了 spork 来加速我的测试,但是运行它们时没有输出。有需要修改的配置吗?
【问题讨论】:
刚刚也遇到了这个问题,在 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
如果有人知道更优雅的方法来解决这个问题,请告诉!
【讨论】:
config.output_stream = $stdout 解决了它。谢谢
@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
更简单的解决方法是在此代码块中添加格式化程序,但我认为这可能会更快(就测试运行速度而言)并且不会冒险多次添加相同的格式化程序。但尚未验证该猜测。
【讨论】: