有没有人有任何具体的理由来使用一个自动测试运行器而不是另一个?我同时使用了 Autofeature + autotest,我真的很喜欢它设置的内置过程,因为它首先运行我的 rspec 单元测试,然后是 cucumber 测试,只有最后一个失败的测试 - 它适合标准编写 Cucumber 测试的工作流程,设置步骤直到它们失败,然后进入单元测试以获取详细功能。
我在标准 rspec 配置中使用了 guard,它也运行良好,但我没有在 cucumber 测试中弃牌 - 没有时间进一步试验。
只是想知道是否有人有任何特定的理由使用一种方法而不是另一种方法,或者一种方法是否可以减轻另一种方法的弱点。
感谢您的输入, 托尼
最佳答案
出于某种原因,我最近从 autotest 转向了 guard,它比 autotest 工作得更好,而且它有一个 lot of available guards .因此,通过一个进程,您可以监控很多事情。
目前我将它用于 Rspec , Passenger , 和 Yard但是这个列表很长,如果你需要它来做其他事情,你总是可以实现你的守卫。
我发现它对 passenger 在开发时非常有用,因为它会在您更改需要重新启动服务器的内容(即路线、配置等)后立即重新加载服务器。
一些可用的 guards 可以通过某种方式替换,例如使用 yard 你可以启动它自己的服务器,但是你需要两个不同的进程,使用 guard 你可以用一个进程完成所有工作。
换句话说,Guard 更像是一个通用框架,适用于每个需要执行由文件更改触发的操作的进程,自动测试仅限于运行测试。
更新
回应您的评论
您可以在 .rspec
文件中使用 --rand
来随机化规范顺序 if you have Rspec > 2.8 .通过这种方式,这是在 rspec 顺序上实现的,当您使用 rake
或使用 rspec
可执行文件调用 rspec 时,它也可以工作。
对于较少的文件,有 guard-less .
此外,最新版本的 guard 还嵌入了带有 pry 的 Rails 控制台在守卫空闲时可用,在开发模式下非常有用。
关于testing - 比较 Autofeature/autotest 与 Guard 的优缺点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222715/