我正在尝试调试一些Capybara集成测试并遇到意外问题。当我在Capybara测试中设置断点时,我可以检查变量,但我无法调用puts
或$stdout.puts
或$stderr.puts
。要明白我的意思,请看这个输出:
(rdb:1) "foo"
"foo"
(rdb:1) puts "foo"
nil
据推测,这是因为Capybara捕获stderr和stdout作为其标准操作的一部分,以便与selenium驱动程序保持安静等等。我明白了,但问题是检查ruby调试器中的字符串会逃脱换行符,这使得无法读取像HTML这样的长格式化字符串。
如何使用IO#puts
获取对活动终端的引用以输出某些内容以进行调试?