【问题标题】:Error running autotest on Windows 7 with Rails 3, Ruby 1.9.2在带有 Rails 3、Ruby 1.9.2 的 Windows 7 上运行自动测试时出错
【发布时间】:2010-10-27 07:23:14
【问题描述】:

在 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 gem 而不是autotestautotest-rails-pure gems,然后运行了!但是,它没有检测到默认目录中的任何测试文件。所以这似乎也没多大用处。

谁能帮忙?

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 是的,我认为这会是一些类似的东西,但我还没有找到可行的解决方案。我尝试在管道之后将“C:/bin/...”中的“/”替换为“\”,但这只是将整个字符串 ('C:\bin\...\unit_diff') 调用为未识别。当我将整个字符串放在双引号内时,它表示“C:/bin/.../unit_diff”无法识别(注意单引号内的双引号)。后者确实有意义,因为 unit_diff 是一个 ruby​​ 程序,而不是一个本地 Windows 程序。因此,正在构建的整个字符串对于 Windows 来说看起来不太好。还有其他想法吗?
      猜你喜欢
      • 2011-07-03
      • 2011-11-26
      • 2011-06-13
      • 1970-01-01
      • 2012-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多