为什么不执行系统命令?
问题描述:
我已经通过我在网上找到的脚本放在一起,但我不确定为什么我的puts命令不执行系统命令?它只是坐落在码头未执行。当我尝试系统(“rspec spec”)时,它工作正常,但我无法捕获输出。为什么不执行系统命令?
def run(cmd)
`#{cmd}`
end
def run_spec_files
system('clear')
result = "rspec spec"
puts result
growl(result)
end
def growl(message)
growlnotify = `which growlnotify`.chomp
unless growlnotify.empty?
title = "Test Results"
options = "-w -n Watchr -m '#{message}' '#{title}'"
run("#{growlnotify} #{options} &")
end
end
watch('lib/(.*)\.rb') { run_spec_files }
答
puts
只是打印出您传递它的字符串。它不会在shell中执行它。像你的run
方法中的反引号将在shell上执行。试试这个:
def run_spec_files
system('clear')
result = run("rspec spec")
puts result
growl(result)
end
你的直接问题的答案已经给出,但你可能只考虑使用autotest与自动测试咆哮。在没有全部手动定义的情况下完成所有这些。 – Wes 2011-04-09 05:13:03
我曾经,但自动测试只是在一段时间后停止工作。由于某种原因,Watchr似乎更加保持警惕。 – 2011-04-09 15:21:27