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

时间:2009-06-26 02:50:49

标签: ruby-on-rails rspec autotest

twitter中的waloeiii相同的问题:

  

如何才能运行autospec / test   一切都完整的测试套件   变绿?我写的下一个测试将会   是红色的!

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

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

it "should flunk" do
  flunk
end

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

4 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:1)

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

autospec --no-full-after-failed

答案 2 :(得分:1)

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

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

class Autotest
  def rerun_all_tests
  end
end

答案 3 :(得分:0)

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

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

ruby spec/controllers/my_spec.rb

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