运行$ autotest或$ autotest -f会得到相同的结果:
#等待[timestamp]
更改控制器或spec文件只会重复该行(使用较新的时间戳)。如果我尝试$ autotest -v,它不包括没有测试匹配的文件列表中的规范或控制器,我认为这是好的;但除了#waiting行之外,它没有显示任何其他内容。
如果我在运行-v时对规范或控制器进行了更改,则输出是使用{[path / to / changed / file] =>重复两次的哈希[时间戳]}。
这是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本身工作正常。)有什么想法吗?
答案 0 :(得分:2)
啊哈!作为我第一次使用rvm的实验的一部分,我正在这样做,但我在/ usr / lib / ruby中将ZenTest作为gem。即使我将'rvm use ___'设置为我想要的gemset - 具有autotest和autotest-rails-pure gems的那个 - 命令'autotest'仍然在/ usr / bin / autotest中获取旧的ZenTest文件已经到位。因此对于跟随railstutorial.org的任何人 - 确保你没有使用pre-rvm(或者来自sudo gem installs)的宝石,这些宝石会将文件留在你不期望的地方。
对我来说,'sudo gem uninstall ZenTest'结果就是这样做的。
答案 1 :(得分:0)
我有完全相同的环境,除了Windows而不是Ubuntu。我有同样的问题。我确定它实际上并没有使用rails_app / autotest / discover.rb我这样设置(尝试改变顺序,没关系,添加输出语句,它们从未运行过。):
Autotest.add_discovery { "rspec2" }
Autotest.add_discovery { "rails" }
我找到了解决方案:
在我的Gemfile for bundler中我已经指定了ZenTest,并且需要将它换成这些美女(autotest-rails依赖于ZenTest,但这有所不同):
gem 'autotest'
gem 'autotest-rails'
现在它起作用了(差不多但至少现在我有一个不相关的'Windowsy'问题)。我想这会对你有帮助!
好autotest
,仍然不起作用,但bundle exec autotest
确实有效,而且这已经足够了!
答案 2 :(得分:0)
通过将以下内容添加到我的autotest / discover.rb文件中解决了我的问题:
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
这会强制自动测试加载所有文件,并在将更改保存到应用程序文件或spec文件时正确触发您的规范。
我在这里写了博客:http://itshouldbeuseful.wordpress.com/2011/03/08/force-autotest-to-load-all-your-application-files/