0

我一直在玩自动测试,试图让它整天工作..但我遇到了一些问题......

我一直在关注https://github.com/rspec/rspec/wiki/autotest,我正在运行:

  • 红宝石 1.9.3-p194
  • rspec 2.10.0
  • 禅测 4.8.1

我还创建了一个 .rspec 文件。

因此,使用此设置,我运行自动测试,它可以工作 - 我的测试运行,它通过了,万岁!当我在测试中遇到失败时,例如 false.should == true,然后测试开始循环,一遍又一遍。

发生的事情是它是一个集成测试,我正在写一个 sqlite 数据库。如果我运行,find . -mmin -1那么我可以看到我的 db 文件夹已更改 - 所以我认为这就是问题所在。

所以我编辑 .autotest 并添加以下内容:

Autotest.add_hook :initialize do |autotest|
  %w{db}.each { |exception| autotest.add_exception(exception) }
  false
end

但是现在当我运行自动测试时,它只显示以下内容:

loading autotest/rspec2

就是这样,它不会再做任何事情了。以前的输出是:

loading autotest/rspec2

/home/me/.rbenv/versions/1.9.3-p194/bin/ruby -rrubygems -S '/home/me/.rbenv/versions/1.9.3-p194/lib/ruby/gems/1.9.1/gems/rspec-core-2.10.1/exe/rspec' ``--tty '/home/me/Workspace/myproject/spec/integration/db/lead_spec.rb'

然后它会运行我的测试并显示结果......

有人知道会发生什么吗?很郁闷,感觉自己遇到了路障......

谢谢你的帮助!

4

1 回答 1

0

自动测试检查定义的异常是否匹配文件名的任何部分。您的规范db在其路径中,因此自动测试会忽略它。

如果要忽略db文件夹,请执行以下操作:

Autotest.add_hook :initialize do |a|
  a.add_exception %r{^\./db}
end
于 2012-09-04T10:06:51.770 回答