gpt4 book ai didi

ruby-on-rails - 如何解决自动测试无限循环问题?

转载 作者:行者123 更新时间:2023-12-04 00:05:41 25 4
gpt4 key购买 nike

我正在使用 cucumber 、rails3、rspec2 和自动测试。我试图弄清楚为什么我的功能是无限循环的。我怀疑在测试期间更改了某些文件,但我不确定是哪一个。我在 .autotest 中添加了一些异常(exception)情况没有骰子。

我可以采取任何步骤来解决此问题吗?

如果我能看到哪些文件正在触发重新运行,或者在运行时,正在监视/未监视哪些文件,那就太酷了。

这是我的 .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

最佳答案

好的,所以我想通了。我深入研究了 autotest 的源代码,以更好地了解发生了什么。它从所有异常中创建一个 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

当我这样做时,我没有得到无限循环。之后我才开始注释掉每个异常。结果,我必须手动忽略的唯一文件是 Gemfile.lock .出于某种原因,这要么被更改,要么将自动测试混淆到它使 cucumber 循环的程度。

因此,这个 .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

我将报告 cucumber 列表,让他们知道他们应该将其添加到内置的自动测试异常中。

关于ruby-on-rails - 如何解决自动测试无限循环问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3190210/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com