0

ときどき、zsh を使用する iTerm 2 を起動して、チュートリアルに取り組みます。Ruby テストを実行しようとしても、実行されないことがあります。何も返されません。プロセスは実行されず、ctrl + C を押して抜け出す必要があります。

私が実行するコマンドは次のとおりです。

ruby -I test/unit/name_of_test.rb

これは、すべてのテストで発生します。時々、コンピューターを再起動する必要があります。何か案は?

また、zshを使用しているターミナルも使用してみました。

Ruby 1.9.3 と Rails 3.2.8 を使用して、OS X を使用しています。

4

2 に答える 2

2

これは実際には、Ruby、iTerm 2、Terminal、または zsh の問題ではありません。代わりに、*nix OS アプリが STDIN からの読み取りを処理する方法を理解していません。

あなたが見ている問題は、ディレクトリを-I指定することです。$LOAD_PATHその結果、Ruby は path/to/script をLOAD_PATH変数として使用し、実行するスクリプトが見つからないため、STDIN からの入力を待ってハングします。

+を使用したり、再起動したりするのではなく、CNTRL+を使用します。これにより入力ストリームが閉じられ、実行するコマンドが見つからないため、Ruby が終了します。CCNTRLD

これは、次を使用してテストできます。

ruby -I /dev/null

コマンドラインで。Ruby は入力を待ってハングします。入力を閉じると、Ruby はすぐに終了します。もちろん、それが起こったことに気付かなかった場合は、Ruby に興味深いコマンドを打ち込んでしまい、CNTRL+が表示されるまで何もせずD、あらゆる種類の有益なメッセージを吐き出すことになるかもしれませんが、それは理解できることです。インタプリタに関する限り、入力はおそらくクレイジートークになるでしょう。

同じCNTRL+Dの組み合わせは、STDIN から読み取るときに、他のあらゆる種類の *nix プログラムからの入力を閉じるために使用されます。

于 2013-02-07T14:57:28.377 に答える
1

どっ!これを書いているときに、私は自分の問題を発見し、他の誰かがこれを行った場合に備えて、先に進んで答えを提供しようと考えました. 次のように、ディレクトリを指定する前にtestという単語を含めるようにコマンドを調整する必要がありました。

ruby -I test test/unit/name_of_test.rb
于 2013-02-07T14:39:14.627 に答える