如何配置rspec以显示spork的输出?

use*_*493 5 rspec spork

我有spork运行来加速我的测试但是当我运行它时没有输出.我需要修改配置吗?

ast*_*civ 7

刚刚遇到这个问题,在spork 1.0.0rc4和rspec 2.14.1/rspec-core 2.14.8上运行.据我所知,问题在于:

  1. Spork将$ stdout配置为指向localhost:port(drb客户端),以便将所有报告输出发送到drb客户端.这现在发生 Spork.prefork运行之后.
  2. 在我的Spork.prefork块中,我(自然地)在做RSpec.configure do | config |,其中一个配置调用(特别是config.mock_with:rr)导致一系列调用最终导致报告者/格式化程序在RSpec.configuration中进行初始化 - 但没有错误的标准输出.
  3. RSpec.configuration有一个重置方法(标记为@private但是唉),它刷新初始化的报告器/格式化程序,懒得重新初始化.
  4. 此外,从不设置RSpec.configuration.output_stream.底线,将此代码添加到Spork.each_run似乎可以解决问题:

    if Spork.using_spork?
        RSpec.configure do |config|
            config.reset
            config.output_stream = $stdout
        end
    end
    
    Run Code Online (Sandbox Code Playgroud)

如果有人知道更优雅的方法来解决这个问题,请告诉我!