Ruby中的IO.popen()和system()非常缺乏一些有用的功能,例如:
Python有一个模块“subprocess”,我正在考虑将其用作Ruby中类似模块的灵感。现在回答问题:
答案 0 :(得分:9)
$?.exitstatus
system 'command 2>&1'
之类的东西捕获答案 1 :(得分:9)
答案 2 :(得分:1)
在测试git_remote_branch时,我觉得有必要做到这一点。该工具调用shell,我想准确捕获测试运行期间显示的内容,无论git显示什么,无论是在stdout还是stderr中吐出。
我有一个可以被观察到的完全可重复使用的模块here(麻省理工学院许可证:随意使用,不要起诉我; - )
您可以在git_remote_branch here的测试中看到它的实际效果。
另外,我专门为capture_fu设置了一个repo,它包含了一些测试和内容。该项目虽然设置得不是很好。我没有花太多时间让它可释放; - )