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