如何从 Rake 中的系统命令打印到标准输出?

Sha*_*ell 1 ruby rake ruby-mocha

我有以下 Rakefile

desc "Runs tests"
namespace :test do
    task :api do
        `mocha`
    end
end
Run Code Online (Sandbox Code Playgroud)

当我运行命令时rake test:api,如果我只运行命令,我不会得到很好的点输出mocha

如何在 rake 任务中实时打印命令的输出?

knu*_*nut 6

你可以只put输出:

puts `mocha`
Run Code Online (Sandbox Code Playgroud)

反引号 ` 调用命令mocha并返回命令的输出。

您还可以使用%x{}

puts %x{mocha}
Run Code Online (Sandbox Code Playgroud)

或者你使用system

system('mocha')
Run Code Online (Sandbox Code Playgroud)

或者您将输出存储在变量中供以后使用:

output = `mocha`
puts output
Run Code Online (Sandbox Code Playgroud)