2009-06-26 114 views
0

同样的问题waloeiii在twitter在一切都变绿之后,我如何让自动测试/测试不运行完整的测试套件?

如何我已经autospec /测试后不一切 走向绿色运行 完整的测试套件?我写的下一个测试将为 为红色!

我宁愿手动运行完整测试套件。

顺便说一句,我尝试添加一个失败规格:

it "should flunk" do 
    flunk 
end 

但autospec似乎当它感觉像它忽略它。

+0

当然有一种方法可以单独运行测试。 – 2009-06-26 03:37:30

+0

当然可以。 autospec将自动为您运行单个测试。我只是不喜欢autospec,即使你仍然有失败或未定规格,它有时会重新运行整个测试套件。 – gsmendoza 2009-06-26 06:07:20

回答

1

有点晚了,但我一直在寻找这个问题,以及因此想我会后我的解决方案:

以下内容添加到〜 /.autotest:

class Autotest 
    def rerun_all_tests 
    end 
end 
0

我认为这是通过设计 - 如果您修复了一个失败的规范,并且该部分中的所有其他规范都是绿色的,那么autospec将重新运行整个套件 - 这会告诉您,如果修复应用于你的项目有另一个或没有。

如果你只是想运行你在任何一个时间工作的规范,那么你可以在命令行中做到这一点:

ruby spec/controllers/my_spec.rb 

或通过从您的规格按CMD + R内的TextMate文件。无论如何,您应该重新运行整个套件,否则您可能会缺少规格不合格的产品。

1

你确定你是不是感到困惑自动测试的启发式的预期的行为?

我的理解是,它运行发生了什么变化测试,并会继续运行失败的测试,直到他们通过,然后一旦他们通过运行整个测试套件,以确保没有别的爆发。

实际上它正在保守,并确保你没有出台副作用,打破其他不相关的测试这可能是一件好事。当然问题是,如果你正在做快速的红绿循环,你将会运行你的全套套件。

如果你想改变你需要在rails_autotest.rb文件zentest编辑启发式这些行为。

+0

感谢您指出e rails_autotest.rb。我会研究它。顺便说一下,即使我添加了一个假的失败测试(见上面),autospec仍然有时会重新运行整个测试套件。 – gsmendoza 2009-06-28 04:47:12

+0

我最终禁用了ZenTest-4.0.0/lib/autotest.rb中的所述行为。感谢您的建议! – gsmendoza 2009-06-29 06:39:03

1

您可以使用下列选项来避免这种行为 -

autospec --no-full-after-failed 
相关问题