Guard: Ctrl-Cがガードをクラッシュさせる

作成日 2016年06月16日  ·  21コメント  ·  ソース: guard/guard

(guard-rspecプラグインを使用して)実行中のテストをキャンセルしようとすると、ガードシェルがクラッシュし、テストが続行されます。 ガードを開けてctrl-cを押すだけで再現できます。 以下の完全なデバッグセッション出力と診断情報。 2.3.0では正常に動作しますが2.3.1では動作しないため、rubyバージョンに関連している可能性があります。

$ bundle exec guard --debug
13:09:37 - DEBUG - Notiffany: gntp not available (Please add "gem 'ruby_gntp'" to your Gemfile and run your app with "bundle exec".).
13:09:37 - DEBUG - Notiffany: growl not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Notiffany: terminal_notifier not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Notiffany: libnotify not available (Please add "gem 'libnotify'" to your Gemfile and run your app with "bundle exec".).
13:09:37 - DEBUG - Command execution: which notify-send
13:09:37 - DEBUG - Notiffany: notifysend not available (libnotify-bin package is not installed).
13:09:37 - DEBUG - Notiffany: notifu not available (Unsupported platform "linux-gnu").
13:09:37 - DEBUG - Command execution: {"ALTERNATE_EDITOR"=>"false"} emacsclient --eval '1'
13:09:37 - DEBUG - Notiffany: emacs not available (Emacs client failed).
13:09:37 - DEBUG - Command execution: tmux -V
13:09:37 - DEBUG - Notiffany: file not available (No :path option given).
13:09:37 - DEBUG - Command execution: tmux -V
13:09:37 - DEBUG - Notiffany is using Tmux to send notifications.
13:09:37 - DEBUG - Command execution: tmux list-clients -F '#{client_tty}'
13:09:37 - DEBUG - Command execution: tmux show -t /dev/pts/0
13:09:37 - DEBUG - Notiffany is using TerminalTitle to send notifications.
13:09:37 - DEBUG - Command execution: hash stty
13:09:37 - DEBUG - Guard starts all plugins
13:09:37 - DEBUG - Hook :start_begin executed for Guard::RSpec
13:09:37 - INFO - Guard::RSpec is running
13:09:37 - DEBUG - Hook :start_end executed for Guard::RSpec
13:09:38 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/039-disciple/disciple-api'
13:09:38 - DEBUG - Start interactor
[1] guard(main)>  [ pressed ctrl-c here ]
[1] guard(main)> ⏎                                                                                                                                                                                                                                                                                                            $  [typed a few random characters]
$ aError: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:115:in `interruptible_region'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:197:in `input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:183:in `block in read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:129:in `handle_read_errors'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:170:in `read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:98:in `read'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:68:in `block in repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `loop'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `block in start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:61:in `__with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:79:in `with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:15:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/pry_class.rb:169:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-byebug-3.4.0/lib/pry-byebug/pry_ext.rb:11:in `start_with_pry_byebug'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-2.14.0/lib/guard/jobs/pry_wrapper.rb:102:in `block (2 levels) in _switch_to_pry'
[... this section below repeats several times ...]
[1] guard(main)> Error: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:115:in `interruptible_region'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:197:in `input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:183:in `block in read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:129:in `handle_read_errors'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:170:in `read_line'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:98:in `read'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:68:in `block in repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `loop'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:67:in `repl'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `block in start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:61:in `__with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/input_lock.rb:79:in `with_ownership'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:38:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/repl.rb:15:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.3/lib/pry/pry_class.rb:169:in `start'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-byebug-3.4.0/lib/pry-byebug/pry_ext.rb:11:in `start_with_pry_byebug'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/guard-2.14.0/lib/guard/jobs/pry_wrapper.rb:102:in `block (2 levels) in _switch_to_pry'
[... end of repeating section ...]
[1] guard(main)> Error: Input/output error - read
FATAL: Pry failed to get user input using `Readline`.
To fix this you may be able to pass input and output file descriptors to pry directly. e.g.
  Pry.config.input = STDIN
  Pry.config.output = STDOUT
  binding.pry

13:11:22 - DEBUG - Interactor was stopped or killed
13:11:22 - DEBUG - Guard stops all plugins
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-left-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-right-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-left-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 status-right-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 message-bg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 message-fg
13:11:22 - DEBUG - Command execution: tmux set -q -u -t /dev/pts/0 display-time
$ uname -a
Linux triton.avito.uk 4.5.0-x86_64-linode65 #2 SMP Mon Mar 14 18:01:58 EDT 2016 x86_64 x86_64 x86_64 GNU/Linux
$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

私の知る限り、Ruby2.3.​​1はReadlineサポート付きでコンパイルされています。

$ ruby -rreadline -e 'puts Readline::VERSION'
6.3

残念ながら、これをデバッグするための次のステップはわかりません。

bug help needed work in progress

最も参考になるコメント

関連するかどうかはわかりませんが、RSpec中にCTRL-Cを押すと、こじ開けに戻りますが、ガードは二度と何も実行しません。 私はそれをあまりデバッグしようとしませんでした。 動作は、bundleexecがある場合とない場合で同じです。 上で指定したブランチで実行してみましたが、RSpecを停止した後にガードが終了する場所に違いがありました。

何か案が? これと関係がありますか? あなたがこれについてすぐに考えがないならば、私は内部を掘り下げてうれしいです。 遅いスペックがたくさんあり、途中でスペックを止めることができれば、多くの時間を節約できます。 :)

全てのコメント21件

私は2.2.5でもこれを経験しています。

私もこれを経験しています(事実上同じスタックトレース)が、Ruby v2.3.0 、Guard v2.13.0ます。

bundle exec guardを介してGuardを実行し、プロンプトでCtrl-Cを押すと、問題が発生します。 ただし、バンドルを介さずにguardを実行した場合、 Ctrl-C押しても問題は発生しません。

RubyとReadlineの完全版:

$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin15.5.0]
$ ruby -rreadline -e 'puts Readline::VERSION'
6.3

Pryプロンプトがエラーになった後、ここで説明するのと同様の端末の破損が発生します。
https://github.com/pry/pry/issues/1275
https://github.com/pry/pry/issues/1183
https://github.com/guard/guard/issues/719

rb-readline gemを手動でインストールすると、後で発生する破損の問題は修正されますが、 Ctrl-Cでは同じスタックトレースが生成されます。 このgemをインストールすると、guardは私のReadlineバージョンを次のように報告します。

[1] guard(main)> Readline::VERSION
=> "5.2"

ここでまったく同じ問題が発生します... @ WilHallが示唆しているように、外部の

$ ruby -v
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin14]
$ guard -v
Guard version 2.14.0

私のReadlineバージョンは、ガードの内側と外側の両方で6.3です。

それはいくつかのものの組み合わせのように見えます。

「quickfix」ブランチを作成し、後でそれを統合する方法を考え出すでしょう。

わかりました、私はいくつかのハックでブランチを作成します: https

Gemfile使用方法

gem 'guard', github: 'guard/guard', branch: 'experimental_fixes'

次に、通常どおり、更新とbundle exec guardをバンドルします。

また、通知を無効にして、それが次の場合にも役立つかどうかを確認することをお勧めします。

bundle exec guard -n f

問題と修正を報告してください。

これで修正する必要のあるいくつかの問題:

  1. ctrl-Cでガードを終了するとき、Pryはクラッシュを停止する必要があります
  2. 最後の行の後の出力は、下のシェルプロンプトを隠すべきではありません
  3. TMuxとTerminalTitleの両方の通知機能が出力に問題を引き起こすようです
  4. 確認していませんが、LumberJackロギングがタイムフラッシュを使用してはいけないのに使用している可能性があります。
  5. STDERRストリームは閉じられなくなりました
  6. Pryが殺されて参加することはなくなり、代わりにウェイクアップされます(したがって、他の調整を考慮して「ハング」しないようにする必要があります)

いくつかの回帰/問題:

  1. ガード/タスクが色付きの出力を台無しにした場合、それは修正されません(コンソールのリセットが無効になっています)。
  2. これに対するテストはありません(最初に問題を修正できるかどうかを確認しようとしています)
  3. MRI2.3.1以外のルビーではテストされていません

その他の回避策:

必死になっている場合は、Pryや通知なしでGuardを使用してみてください。

bundle exec guard -n f -i

これが役立つか、他の問題があるかどうかを教えてください。正式な修正とリリースに向けて取り組むことができます。

これらの修正のいずれかを選択的に使用するPRを自由に提出してください(テストは良いでしょうが)。

私はいくつかの調整をプッシュしました。

これらの変更をプルして(または上記のGemfile行を使用している場合はbundle update )、これをGuardfileに追加して、それが役立つかどうかを確認できます。

UI.options.merge!(flush_seconds: 0, level: :debug, device: 'guard.log')
notification :off

また、エラーをguard.logます。 (ただし、OSXでディレクトリ全体のスキャンがトリガーされる場合があります)。

@ e2に感謝します、残念ながら私はあまり運がありませんでした:

  • Ctrl-Cでのクラッシュ動作は、追加のフラグなしで実行した場合、「experimental_features」ブランチと同じままです。
  • -n fを指定しても違いはありません。
  • -iパラメーターを使用すると、テストでCtrl-Cを実行したときにクラッシュするのを防ぐことができます(終了するのは難しいですが)。

Ctrl-Dで終了すると、次のいずれかの例外が発生することがよくあります。おそらく競合状態です。

19:56:17 - INFO - Bundle already up-to-date
19:56:17 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/042-joinly/joinly-app'
^Clog writing failed. can't modify frozen IOError
➜  joinly-app git:(master) ✗
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/commander.rb:69:in `stop': undefined method `destroy' for #<Guard::Jobs::Sleep:0x0056104497dd80> (NoMethodError)
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/commander.rb:53:in `start'
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/cli/environments/valid.rb:16:in `start_guard'
        from /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/bundler/gems/guard-d299ad21cfa8/lib/guard/cli.rb:122:in `start'
[...]

そして

19:56:29 - INFO - Bundle already up-to-date
19:56:30 - INFO - Guard is now watching at '/mnt/data1/home/andrew/projects/042-joinly/joinly-app'
^CE, [2016-08-01T19:56:38.584021 #10597] ERROR -- : run() in thread failed: stream closed:\n /home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:300:in `readpartial'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:300:in `readpartial'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:271:in `read_events'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:238:in `process'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/rb-inotify-0.9.7/lib/rb-inotify/notifier.rb:221:in `run'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/listen-3.1.5/lib/listen/adapter/linux.rb:39:in `_run'
[...]

bundle exec guard -n f Guardfile行は、エラーに遅延をもたらすようです。 テストの実行中にCtrl-Cを押すと、Pryが切り離され、テストはアクティブなプロンプトと混合されたSTDOUTへの書き込みを続行します。 しかし、それは同じように終わります:

[1] guard(main)> Error: Input/output error - read
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/repl.rb:198:in `block in input_readline'
/home/andrew/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/pry-0.10.4/lib/pry/input_lock.rb:115:in `interruptible_region'

これをチェックしてくれてありがとう@Odaeus

まず、こじ開けないインタラクターを台無しにしました。 (これを修正するために、コミットをプッシュしました)。

次に、このrb-inotifyのバグに遭遇しました: https

修正を作成しました(まだマージまたはリリースされていません)。

それまでは、これをGemfile使用します。

gem 'rb-inotify', github: 'e2/rb-inotify', branch: 'e2-fix_ioerror_when_closed'

それは問題2を解決します。

問題3-それはおそらく進行中の作業ですが、 Guardfileことを確認してください:

UI.options.merge!(flush_seconds: 0, level: :debug, device: 'guard.log')
notification :off

また、別のウィンドウの出力でtail -f guard.logを使用できます。

これを適切に修正するには、Pryセッションの処理全体を再設計する必要があるのではないかと心配しています。 それはおそらく土曜日全体がうまくいくのにかかるでしょう:(

パッチがもうある場合は、ここにいる全員にできるだけ早く知らせます。

わかりました、これは(私が知る限り)うまくいくはずです:

あなたのGemfile

 gem "guard", github: "guard/guard",
                branch: "experimental_fixes", ref: "c6ab8a0"

 gem "listen", require: false, github: "guard/listen",
                branch: "advanced_thread_debugging", ref: "31053de"

  gem "guard-rspec", require: false, github: "guard/guard-rspec",
                     branch: "ctrl_c_workaround", ref: "ee0b21d"

  gem "rb-inotify", require: false, github: "e2/rb-inotify",
                    branch: "e2-fix_ioerror_when_closed", ref: "99d2101"

かなりの数のパッチです。PRを確認、コメント、送信して、これらのパッチをできるだけ早くテストしてリリースできるようにしてください。

ありがとう!

@ e2この動作ははるかに優れており、ctrl-cを押した場所を確認できます。コマンドプロンプトに戻りますが、プロセスは終了中です。 それは最後に例外を発生させ、それは木こりから出てきているようですが、スペックは実行を停止します。 これを見ていただきありがとうございます。 お役に立てれば!

^CGuard: INT signal, handling inside trap...                                                                                                             |  ETA: 00:02:03
Guard Pry job: handling interrupt
Guard Pry job: no thread, interrupting Guard

RSpec is shutting down and will print the summary report... Interrupt again to force quit.
Guard::RSpec: Interrupted by user. Waiting for RSpec to die...
➜  source_code git:(development) ✗  3/17 |========== 17 ==========>                                                                                                                         |  ETA: 00:02:28
Pending: (Failures listed here are expected and do not affect your suite's status)

  1) items can export items pdf export
     # Temporarily skipped with xit
     # ./spec/features/items_spec.rb:38


Top 3 slowest examples (25.2 seconds, 83.1% of total time):
  items can click export button and walk through modals
    14.92 seconds ./spec/features/items_spec.rb:26
  items appear in proper time periods
    10.28 seconds ./spec/features/items_spec.rb:51
  items can export pdf export
    0.00005 seconds ./spec/features/items_spec.rb:38

Finished in 30.33 seconds (files took 1.14 seconds to load)
3 examples, 0 failures, 1 pending

Randomized with seed 54136

Coverage report generated for RSpec to /Users/justin/dev/source_code/coverage. 1759 / 3324 LOC (52.92%) covered.

➜  source_code git:(development) ✗
10:18:10 - INFO - Inspecting Ruby code style: spec/features/items_spec.rb
Inspecting 1 file
.

1 file inspected, no offenses detected

10:18:11 - INFO - Bye bye...
/Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/device/writer.rb:89:in `close': closed stream (IOError)
    from /Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/device/writer.rb:89:in `close'
    from /Users/justin/.rbenv/versions/2.2.5/lib/ruby/gems/2.2.0/gems/lumberjack-1.0.10/lib/lumberjack/logger.rb:140:in `close'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/lib/guard/aruba_adapter.rb:51:in `execute'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/lib/guard/aruba_adapter.rb:20:in `execute!'
    from /Users/justin/dev/source_code/vendor/cache/guard-c6ab8a0b70a3/bin/_guard-core:11:in `<main>'

@ jetheredge-これをテストしてくれてありがとう。

私はこれをすぐに調べる時間がありません:(

でももっと使い勝手が良かったです。

あなたの例に基づいて、RSpecはただ停止し、GuardはPryプロンプトに戻るはずです。

ここでの問題は、GuardがINT信号をトラップすることだと思います。 すべきではありません。 Pryを強制終了するためにのみ使用する必要がありますが、Pryが実行されていない(ジョブがない)場合は何も実行されません。

誰かがテストしたいのなら、私はこれのPRを受け入れます。 (基本的に、「Guard Pryジョブ:スレッドなし、Guardの割り込み」は発生しないはずです。割り込みはPryWrapperでは無視する必要があります)。

@ e2ありがとう! 来週はPRの作成を見ていきます。

@ jetheredge-この行を置き換えるだけで十分だと思います:

https://github.com/guard/guard/blob/c6ab8a0/lib/guard/jobs/pry_wrapper.rb#L108

ただの「リターン」で。

また、Ctrl-Cはとにかくガードを終了するべきではありません。

@ e2-ガイダンスのおかげで、今週は予想外に忙しかったので、すぐにPRを作成します。

私たちは皆、私を信じてください;)

(あなたが私を信じていないなら、Guardの問題のリストをチェックしてください-
それらのほとんどすべてが機能です)。

2016年8月11日木曜日04:10:08 AM -0700、ジャスティンエセリッジは次のように書いています。

@ e2-ガイダンスのおかげで、今週は予想外に忙しかったので、すぐにPRを作成します。

あなたが言及されたのであなたはこれを受け取っています。
このメールに直接返信するか、GitHubで表示してください。
https://github.com/guard/guard/issues/842#issuecomment -239132345

申し訳ありませんが、これについてはまだ忘れていません。最近埋葬されたばかりのリストに載っています。 私はまだこれを行うことを計画しています、それは予想よりも長くかかっています。

私も埋葬されています。 パッチが完成してリリースされることを願っています。

関連するかどうかはわかりませんが、RSpec中にCTRL-Cを押すと、こじ開けに戻りますが、ガードは二度と何も実行しません。 私はそれをあまりデバッグしようとしませんでした。 動作は、bundleexecがある場合とない場合で同じです。 上で指定したブランチで実行してみましたが、RSpecを停止した後にガードが終了する場所に違いがありました。

何か案が? これと関係がありますか? あなたがこれについてすぐに考えがないならば、私は内部を掘り下げてうれしいです。 遅いスペックがたくさんあり、途中でスペックを止めることができれば、多くの時間を節約できます。 :)

MacOsSierraでもこの問題が発生しています。

テストをキャンセルすると、ファイルの次の変更でテストが実行されません。 見るのをやめます。

私は同じ問題を抱えています。 これに関する更新はありますか?

ここでも同じ問題があります。 macOSCatalinaを使用します。

このページは役に立ちましたか?
0 / 5 - 0 評価