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\\' 问题)。我想这会帮助你!
好吧,