我的Ruby测试不会运行

时间:2013-02-07 14:39:15

标签: ruby

每隔一段时间,我就会启动使用zsh的iTerm 2来处理教程。有时,当我尝试运行我的Ruby测试时,它们不会运行。什么都没有回来。这个过程永远不会运行,我必须按ctrl + C来突破它。

这是我运行的命令:

ruby -I test/unit/name_of_test.rb

我的所有测试都会发生这种情况。有时我只需要重新启动计算机。有什么想法吗?

我也尝试使用终端,它也使用zsh。

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

2 个答案:

答案 0 :(得分:2)

这实际上不是Ruby,iTerm 2,终端或zsh问题。相反,它不了解* nix OS应用程序如何处理STDIN的读取。

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

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

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

ruby -I /dev/null

在命令行。 Ruby会挂起,等待输入。关闭输入,Ruby将立即退出。当然,如果你没有意识到发生的事情,你最终可能会向Ruby输入一些有趣的命令,除非它看到 CNTRL + D ,否则它将无法执行任何操作。然后可能吐出各种信息性的信息,但这是可以理解的,因为就翻译而言,输入可能是疯狂的谈话。

同样的 CNTRL + D 组合用于在从STDIN读取时关闭来自各种其他* nix程序的输入。

答案 1 :(得分:1)

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

ruby -I test test/unit/name_of_test.rb