在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
宝石而不是autotest
和autotest-rails-pure
宝石,然后就跑了!但是,它没有检测到默认目录中的测试文件是否存在。所以这似乎没什么用。
谁可以提供帮助?
答案 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会将其识别为字符串。