我用美沙酮开始了一个空白项目,美沙酮是一个用于构建命令行应用程序的很棒的框架。唯一的问题是我无法从所在的App
类中进行调试bin/my_app
该类App
是您运行美沙酮时创建的文件。这是我尝试使用 pry 的方式
#!/usr/bin/env ruby
require 'optparse'
require 'methadone'
require 'my_app'
require 'pry'
class App
include Methadone::Main
include Methadone::CLILogging
main do
binding.pry # <= pry here
end
...
当我运行时,rake features
我可以告诉正在运行的进程正在尝试用 pry 做一些事情,因为它会暂停几秒钟。我收到以下错误,然后 rake/cucumber 中止。
process still alive after 3 seconds (ChildProcess::TimeoutError)
我可以从黄瓜步骤、rspec 或任何其他地方很好地使用 pry,只是不能从这个App
类的任何地方使用。
一件非常有趣的事情是,如果我从控制台运行我的命令行应用程序,它将在 pry 所在的位置停止。使用黄瓜时,它只是不会被撬开。
我如何在运行时让应用程序与 pry 一起工作rake features
?
更新
抱歉,我应该澄清一下美沙酮是随 aruba 一起提供的。所以我的黄瓜场景看起来像这样
When I successfully run `my_app arg1`
但是,如果我运行它,它将进入调试/撬动
bundle exec bin/my_app