Backtick Execution在本地但不在服务器上运行

时间:2012-07-21 05:19:36

标签: ruby cucumber sinatra

这是一个简单的sinatra应用程序,它在浏览器中显示黄瓜运行的结果:

require 'sinatra'

get '/' do
    `cucumber features --format html`
end

get '/ls' do
    `ls`
end

根路由工作正常,并在我的本地机器上执行我想要的操作:它执行黄瓜并显示结果。问题是我的服务器上出现错误No such file or directory - cucumber features --format html

我已经完成的故障排除

  • ls路线。它既可以在本地也可以在服务器上运行,并在两种情况下显示我期望的目录结果 - 与sinatra应用程序运行的目录相同。
  • 通过服务器上的ssh从命令行运行cucumber features --format html。再次,它工作正常,输出是我所期望的。

那么为什么我在使用ruby的反引号通过sinatra运行时会出现错误?

谢谢!

1 个答案:

答案 0 :(得分:1)

您确定服务器上安装了黄瓜吗?如果是,并且它是通过bundler安装的,请尝试将命令更改为:

bundle exec cucumber ...

修改

原来黄瓜不在路上。解决方案是使用黄瓜的完整路径。