关于 ruby?? on rails 3:ubuntu 上的自动测试什么都不做

autotest on ubuntu does nothing

运行 $autotest 或 $autotest -f 给出相同的结果:

# 从[时间戳]开始等待

更改控制器或规范文件只会重复该行(带有更新的时间戳)。如果我尝试 $autotest -v,它不会在没有测试匹配的文件列表中包含规范或控制器,我认为这很好;但除了#waiting 行之外,它不显示任何其他内容。

如果我在运行 -v 时对规范或控制器进行更改,输出是一个重复两次的散列,{[path/to/changed/file] => [timestamp]}。

这是 Ubuntu 9.04、Ruby 1.9.2、Rails 3、autotest 4.3.2、autotest-rails 4.1.0 和 rspec 2.0.0.beta.20。 (我还应该说 rspec /spec 本身可以正常工作。)有什么想法吗?


啊哈!我这样做是作为我第一次使用 rvm 实验的一部分,但是我在 /usr/lib/ruby 中将 ZenTest 作为 gem。即使在我将 \\'rvm use ___\\' 设置为我想要的 gemset 之后 - 带有 autotest 和 autotest-rails-pure gems 的那个 - 命令 \\'autotest\\' 仍然在 /usr/bin/autotest 获取文件旧的 ZenTest 已经到位。因此,对于关注 railstutorial.org 的任何人 - 确保您没有在 rvm 之前使用(或来自 sudo gem 安装)的 gem 将文件留在您不希望的地方。

对我来说,\\'sudo gem uninstall ZenTest\\' 可以解决问题。


通过在我的 autotest/discover.rb 文件中添加以下内容解决了我的问题:

1
2
3
4
5
6
7
8
Autotest.add_discovery {"rails" }
Autotest.add_discovery {"rspec2" }

Autotest.add_hook(:initialize) do |at|
  at.add_mapping(%r%^(models|controllers|routing|views|helpers|mailers|requests|lib)/.*rb$%)      do |filename, _|
    filename
  end
end

当您保存对应用程序文件或规范文件的更改时,这将强制自动测试加载您的所有文件并正确触发您的规范。

我在这里写了博客:http://ithouldbeuseful.wordpress.com/2011/03/08/force-autotest-to-load-all-your-application-files/


我有完全相同的环境,除了 Windows 而不是 Ubuntu。我有同样的问题。我确定它实际上没有使用我这样设置的 rails_app/autotest/discover.rb(尝试更改顺序,没关系,添加了输出语句,但它们从未运行过。):

1
2
Autotest.add_discovery {"rspec2" }
Autotest.add_discovery {"rails" }

我找到了解决方案:

在我的打包器的 Gemfile 中,我指定了 ZenTest,并且需要将其替换为这些美女(autotest-rails 取决于 ZenTest,但这一切都不同了):

1
2
gem 'autotest'
gem 'autotest-rails'

现在它可以工作了(几乎但至少现在我有一个不相关的 \\'Windowsy\\' 问题)。我想这会帮助你!

好吧,autotest,还是不行,但是 bundle exec autotest 行了,这就够了!