有没有人有任何具体的推理使用一个自动测试跑步者而不是另一个?我已经使用了Autofeature + autotest,我真的很喜欢它设置的内置过程,它首先运行我的rspec单元测试,然后是黄瓜测试,只有最后一次失败测试 - 它适合标准编写黄瓜测试的工作流程,设置步骤直到失败,然后进入单元测试以获得详细功能。
我在标准的rspec配置中使用了Guard,它也运行良好,但我没有在黄瓜测试中折叠 - 没有时间进一步试验。
只是想知道是否有人有任何具体原因可以使用另一个,或者是否有一种方法可以减轻另一方的弱点。
感谢您的投入, 贝
答案 0 :(得分:24)
我最近从自动测试转向警卫有一个原因,它比自动测试更好,它有一个lot of available guards。因此,通过一个流程,您可以监控很多事情。
目前我将其用于Rspec,Passenger和Yard,但列表很长,如果您需要其他内容,您可以随时实施警惕。
我觉得它在开发时尤其对乘客非常有用,因为一旦你改变了需要服务器重启的东西(即路由,配置等),它就会重新加载服务器。
某些可用的防护装置可以通过某种方式进行更换,例如使用码头可以启动它自己的服务器,但是你需要两个不同的过程,你可以通过一个过程完成所有的工作。
换句话说,对于需要执行由文件更改触发的操作的每个进程,Guard更像是一个通用框架,自动测试仅限于运行测试。
回应你的评论
您可以使用--rand
文件if you have Rspec > 2.8中的.rspec
随机化规范订单。这样就可以在rspec命令中实现,当你使用rake
或rspec
可执行文件调用rspec时,它也可以工作。
对于较少的文件,有guard-less。
此外,最新版本的guard还可以在保护空闲时嵌入带有pry的Rails控制台,在开发模式下非常有用。
答案 1 :(得分:-1)
Minitest,spork和guard不能一起工作。
LoadError: no such file to load -- -r
因此:https://github.com/semaperepelitsa/spork-minitest/issues/2
所以我切换到自动测试(请参阅自述文章中的Michael Grosser的轻量级测试套件)。 Fsevent似乎减少了CPU负载,但它并不像我使用fsevent的旧设置那样“反应”。我不确定为什么。
更新:实际上我确定原因。我在自动测试中打开(次要)问题: https://github.com/grosser/autotest/issues/33
睡眠默认值为1秒。我有一个关于这个问题的解决方法,但它是一个黑客。不知道优雅的解决方案。有了它,它的行为与Guard一样快,并与Minitest一起使用。
Autotest + Minitest似乎无法进行彩色输出,因为它不是tty。这与Autotest iirc无关。我喜欢Guard的Guardfile设置,我不知道自动测试中的'观察者'在哪里。到目前为止,它只是工作,但这可能是一个问题。