使用Rails 3,Ruby 1.9.2在Windows 7上运行自动测试时出错

时间:2010-10-27 07:23:14

标签: ruby windows-7 ruby-on-rails-3 autotest zentest

在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下运行它,但无济于事。

我也尝试使用ZenTest宝石而不是autotestautotest-rails-pure宝石,然后就跑了!但是,它没有检测到默认目录中的测试文件是否存在。所以这似乎没什么用。

谁可以提供帮助?

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

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