1

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

# 从 [timestamp] 开始等待

更改控制器或规范文件只会重复该行(使用更新的时间戳)。如果我尝试 $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 本身可以正常工作。)有什么想法吗?

4

3 回答 3

2

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

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

于 2010-09-02T19:44:18.833 回答
0

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

Autotest.add_discovery { "rails" }
Autotest.add_discovery {“rspec2”}

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

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

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

于 2011-03-08T12:26:39.130 回答
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确实如此,这已经足够了!

于 2010-09-01T23:45:33.953 回答