Я чувствовал необходимость сделать именно это при тестировании git_remote_branch. Инструмент вызывает оболочку, и я хотел точно захватить то, что отображалось во время тестовых прогонов, независимо от того, что отображал git, и неважно, выплевывалось ли оно в stdout или stderr.
У меня есть модуль, который можно использовать многократно и который можно наблюдать здесь (лицензия MIT: используйте по желанию, просто не судитесь со мной; -)
Вы можете увидеть это в действии в тестах для git_remote_branch здесь .
Кроме того, я настроил репо специально для capture_fu , в него входят некоторые тесты и прочее. Проект не очень хорошо настроен, хотя. Я не потратил много времени на то, чтобы сделать его доступным; -)