在一切都变绿之后,如何让autospec / test不运行完整的测试套件?

与twitter中的 waloeiii相同的问题:

在一切都变绿之后,如何让autospec / test不运行完整的测试套件? 我写的下一个测试将是红色的!

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

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

it "should flunk" do flunk end 

但是当感觉它时,autospec似乎忽略了它。

有点迟,但我也在寻找这个,所以我想发布我的解决方案:

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

 class Autotest def rerun_all_tests end end 

您确定不会对自动测试启发式的预期行为感到困惑吗?

我的理解是它运行测试已经发生了变化并将继续运行失败的测试,直到它们通过,然后一旦它们通过它运行整个测试套件以确保没有其他任何破坏。

实际上它是保守的,并确保你没有引入打破其他无关测试的副作用,这可能是一件好事。 问题当然是,如果你正在进行快速的红绿色循环,那么你将会运行你的全套装备。

如果要更改这些行为,则需要在rails_autotest.rb文件中编辑针对zentest的启发式方法。

您可以使用以下选项来避免此行为 –

 autospec --no-full-after-failed 

我认为这是设计的 – 如果您修复了失败的规范,并且该部分中的所有其他规格都是绿色的,那么autospec将重新运行整个套件 – 这将告诉您应用于项目的一个区域的修复是否具有b0rked另一个与否。

如果您只想在任何时候运行您正在处理的规范,那么您可以从命令行执行此操作:

 ruby spec/controllers/my_spec.rb 

或者从您的spec文件中按cmd + r从Textmate中。 无论如何,您应该重新运行整个套件,否则您可能会丢失失败的规格。