我运行了 spork 来加速我的测试,但是当我运行它们时没有输出。是否有需要修改的配置?
最佳答案
刚刚也遇到了这个问题,在 spork 1.0.0rc4 和 rspec 2.14.1/rspec-core 2.14.8 上运行。据我所知,问题在于以下几点:
- Spork 将 $stdout 配置为指向 localhost:port(drb 客户端),以便所有报告器输出都发送到 drb 客户端。现在,这发生在 Spork.prefork 运行之后。
- 在我的 Spork.prefork block 中,我(自然地)正在执行 RSpec.configure do |config| ,其中一个配置调用(特别是 config.mock_with :rr)导致了一系列调用,最终导致了RSpec.configuration 中的报告器/格式化程序将被初始化 - 但没有错误的标准输出。
- RSpec.configuration 有一个重置方法(标记为 @private 但可惜),它会刷新初始化的报告器/格式化程序,以延迟重新初始化。
此外,不知何故,RSpec.configuration.output_stream 从未被设置。最重要的是,将此代码添加到 Spork.each_run 似乎可以解决问题:
if Spork.using_spork? RSpec.configure do |config| config.reset config.output_stream = $stdout end end
如果有人知道解决这个问题的更优雅的方法,请告诉!
关于rspec - 如何配置 rspec 以使用 spork 显示输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22239382/