我的Ruby测试赢了';跑不动

我的Ruby测试赢了';跑不动,ruby,Ruby,每隔一段时间,我就会启动使用zsh的iterm2来编写教程。有时候,当我尝试运行Ruby测试时,它们不会运行。什么也不归还。这个过程从未运行过,我必须按ctrl+C组合键才能摆脱它 以下是我运行的命令: ruby -I test/unit/name_of_test.rb 这在我所有的测试中都会发生。有时我只需要重新启动我的电脑。有什么想法吗 我还尝试使用Terminal,它也使用zsh 我在OSX上,使用Ruby 1.9.3和Rails 3.2.8。Doh!当我写这篇文章的时候,我发现了我的问

每隔一段时间,我就会启动使用zsh的iterm2来编写教程。有时候,当我尝试运行Ruby测试时,它们不会运行。什么也不归还。这个过程从未运行过,我必须按ctrl+C组合键才能摆脱它

以下是我运行的命令:

ruby -I test/unit/name_of_test.rb
这在我所有的测试中都会发生。有时我只需要重新启动我的电脑。有什么想法吗

我还尝试使用Terminal,它也使用zsh


我在OSX上,使用Ruby 1.9.3和Rails 3.2.8。

Doh!当我写这篇文章的时候,我发现了我的问题,我想我会继续,并提供答案,以防其他人这样做。在指定目录之前,我需要调整命令以包含单词test,如下所示:

ruby -I test test/unit/name_of_test.rb

啊!当我写这篇文章的时候,我发现了我的问题,我想我会继续,并提供答案,以防其他人这样做。在指定目录之前,我需要调整命令以包含单词test,如下所示:

ruby -I test test/unit/name_of_test.rb

这不是真正的Ruby、iTerm 2、Terminal或zsh问题。相反,它不理解*nix操作系统应用程序如何处理从标准文本读取的操作

您看到的问题是
-I
指定了
$LOAD\u路径
目录。因此,Ruby使用path/to/script作为
LOAD\u path
变量,然后挂起,等待来自STDIN的输入,因为它没有看到要运行的脚本

不要使用CNTRL+C或重新启动,而是使用CNTRL+D。这样会关闭输入流,这将导致Ruby退出,因为它没有找到要运行的命令

您可以使用以下方法对此进行测试:

ruby -I /dev/null
在命令行中。Ruby将挂起,等待输入。关闭输入,Ruby将立即退出。当然,如果你没有意识到这是怎么回事,你可能会在Ruby上输入一些有趣的命令,直到看到CNTRL+D,它才会做任何事情,然后可能会吐出各种各样的信息性消息,但这是可以理解的,因为对于解释器来说,输入可能是疯狂的谈话


同样的CNTRL+D组合用于关闭所有其他*nix程序在读取STDIN时的输入。

这实际上不是Ruby、iTerm 2、Terminal或zsh问题。相反,它不理解*nix操作系统应用程序如何处理从标准文本读取的操作

您看到的问题是
-I
指定了
$LOAD\u路径
目录。因此,Ruby使用path/to/script作为
LOAD\u path
变量,然后挂起,等待来自STDIN的输入,因为它没有看到要运行的脚本

不要使用CNTRL+C或重新启动,而是使用CNTRL+D。这样会关闭输入流,这将导致Ruby退出,因为它没有找到要运行的命令

您可以使用以下方法对此进行测试:

ruby -I /dev/null
在命令行中。Ruby将挂起,等待输入。关闭输入,Ruby将立即退出。当然,如果你没有意识到这是怎么回事,你可能会在Ruby上输入一些有趣的命令,直到看到CNTRL+D,它才会做任何事情,然后可能会吐出各种各样的信息性消息,但这是可以理解的,因为对于解释器来说,输入可能是疯狂的谈话


同样的CNTRL+D组合用于关闭所有其他*nix程序在读取STDIN时的输入。

这肯定很有帮助。非常感谢。虽然,在我提供的答案中,我显然没有使用正确的语法,所以这对我的情况毫无帮助。这绝对是有帮助的。非常感谢。虽然,在我提供的答案中,我显然一开始就没有使用正确的语法,因此这对我的情况毫无帮助。