コマンド ライン アプリを構築するための優れたフレームワークであるmetadoneを使用して、空のプロジェクトを開始しました。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)
pry は、キュウリの手順、rspec、またはその他の場所から問題なく使用できますが、このApp
クラスのどこからでも使用することはできません。
非常に興味深いことの 1 つは、コマンド ライン アプリをコンソールから実行すると、pry の場所で停止することです。キュウリを使用しても、こじ開けることはありません。
実行中にアプリを pry で動作させるにはどうすればよいですrake features
か?
アップデート
申し訳ありませんが、メタドンがアルバに付属していることを明確にする必要があります. したがって、私のキュウリのシナリオは次のようになります
When I successfully run `my_app arg1`
しかし、私がそれを実行すると、デバッグ/プライに入るでしょう
bundle exec bin/my_app