Я пытаюсь отладить некоторые интеграционные тесты Capybara и столкнулся с неожиданной проблемой. Когда я устанавливаю точку останова внутри теста Capybara, я могу проверять переменные, но я не могу вызвать puts
или $stdout.puts
или $stderr.puts
. Чтобы понять, что я имею в виду, посмотрите на этот вывод:
(rdb:1) "foo"
"foo"
(rdb:1) puts "foo"
nil
Предположительно, это связано с тем, что Capybara захватывает как stderr, так и stdout как часть своей стандартной операции, чтобы сохранять спокойствие с драйверами селена и т.д. делает невозможным чтение длинных форматированных строк, таких как HTML.
Как получить ссылку на активный терминал для вывода чего-либо в целях отладки, используя IO#puts
?