2

在 Windows 7 上安装和运行 Rails 3 和 Ruby 1.9.2 相当顺利。只是现在我想运行自动测试,我遇到了问题。这个错误看起来简单得令人沮丧,但我不知道如何解决它。

我的 Gemfile 中有以下宝石:

gem 'autotest'
gem 'autotest-rails-pure'

但是当我运行时bundle exec autotest,我得到:

loading autotest/rails
style: Rails
C:\bin\Ruby192\bin\ruby -I.;lib;test -rubygems -e "['test/unit', 
'test/unit/helpers/users_helper_test.rb', 'test/unit/user_test.rb'].each 
{ |f| require f }" | C:/bin/Ruby192/lib/ruby/gems/1.9.1/gems/autotest-4.4.1/bin/unit_diff -u
'C:' is not recognized as an internal or external command, 
operable program or batch file.

所以某些路径的格式似乎出了问题,但我不确定在哪里以及如何解决它。我试过在 Cygwin 下运行它,但无济于事。

我也尝试过使用ZenTestgem 而不是autotestand autotest-rails-puregems 并且运行了!但是,它没有检测到默认目录中的任何测试文件。所以这似乎也没多大用处。

谁能帮忙?

4

2 回答 2

3

哦是的!我找到了解决方案!我在这个设置中需要的宝石是:

gem 'ZenTest'
gem 'autotest-rails-pure'

gem 生成正确的ZenTest命令行字符串(实际上只是在管道后面有“unit_diff -u”,没有路径)。autotest-rails-puregem 找到正确的测试集。

于 2010-10-27T08:51:50.623 回答
0

我认为这与 Windows 命令外壳解释路径名的方式有关。通常你可以用“/”代替“\”,它仍然可以工作,但当你也使用管道时显然不行。我敢打赌,如果您可以在失败的命令周围加上引号(以 C:/bin/Ruby192/... 开头),Windows 会将其识别为字符串。

于 2010-10-27T07:42:00.160 回答