Dan*_*nor 12 rspec ruby-on-rails autotest cucumber
我正在使用黄瓜,rails3,rspec2和自动测试.我试图找出为什么我的功能无限循环.我怀疑在测试过程中有些文件正在被更改,但我不确定是哪一个.我添加了一些例外.autotest,没有骰子.
我可以采取任何措施来解决此问题吗?
如果我能看到哪些文件正在触发重新运行,或者在运行时看到正在观看/未观看的文件,那就太酷了.
这是我的.autotest内容
require 'autotest/growl'
Autotest::Growl::clear_terminal = false
# Skip some paths
Autotest.add_hook :initialize do |autotest|
%w{.git .DS_store db log tmp rerun.txt}.each { |e| autotest.add_exception(e) }
end
Run Code Online (Sandbox Code Playgroud)
Dan*_*nor 15
好的,所以我明白了.我深入了解自动测试的来源,以便更好地了解正在发生的事情.它会在所有异常中创建一个Regexp.union,并忽略相对路径与编译表达式匹配的文件.
为了更好地理解我说在我的项目目录的一切错误.autotest除外./app,./lib,./public,./script,./spec和./features.像这样的东西:
# .autotest - to troubleshoot
Autotest.add_hook :initialize do |at|
at.add_exception(%r{^\./\.git})
...
at.add_exception(%r{^\./db})
...
at.add_exception(%r{^\./rerun.txt})
...
end
Run Code Online (Sandbox Code Playgroud)
当我这样做时,我没有得到无限循环.之后我才开始评论每个例外情况.事实证明,我必须手动忽略的唯一文件是Gemfile.lock.由于某种原因,这要么被改变,要么将自动测试混淆到它使黄瓜循环的程度.
这样就.autotest解决了这个问题:
# .autotest - to fix
Autotest.add_hook :initialize do |at|
# Gemfile.lock is causing cucumber to run infinitely. Don't watch it.
at.add_exception(%r{^\./Gemfile.lock})
end
Run Code Online (Sandbox Code Playgroud)
我将报告黄瓜列表,让他们知道他们应该将其添加到内置的自动测试异常中.
只是想说一声谢谢.事实证明,对我来说,它是日志目录.我的.autotest文件看起来像这样.
# .autotest
Autotest.add_hook :initialize do |at|
# Log directory is causing cucumber to run infinitely.
at.add_exception(%r{^\./log})
endRun Code Online (Sandbox Code Playgroud)
有关参考,请参阅http://github.com/aslakhellesoy/cucumber/wiki/Autotest-Integration中的 "自定义自动测试行为" ,其中讨论了无限循环问题.
在Linux/Unix中,您可以使用以下命令:
$ find . -mmin -5
Run Code Online (Sandbox Code Playgroud)
找出在过去5分钟内修改了哪些文件(或任何适当的失效).这可以极大地帮助找到触发无限循环的文件.然后按照其他答案中的说明添加异常.
就我而言,罪魁祸首是webrat.log.
| 归档时间: |
|
| 查看次数: |
1699 次 |
| 最近记录: |