13

有没有人有任何具体的理由使用一个自动测试运行器而不是另一个?我已经使用了 Autofeature+autotest,我真的很喜欢它设置的内置过程,它首先运行我的 rspec 单元测试,然后是黄瓜测试,只有最后一个失败的测试——它适合标准编写黄瓜测试的工作流程,设置步骤直到它们失败,然后进入单元测试以获得详细的功能。

我在标准 rspec 配置中使用了 guard,它也运行良好,但我没有在黄瓜测试中折叠 - 没有时间进一步试验。

只是想知道是否有人有任何特定理由使用一种方法,或者一种方法是否可以减轻另一种方法的弱点。

感谢您的输入,托尼

4

2 回答 2

24

我最近从 autotest 转到 guard 是有原因的,它比 autotest 工作得更好,而且它有很多可用的 guards。因此,通过一个进程,您可以监控很多事情。

目前我将它用于RspecPassengerYard但列表很长,如果你需要它来做其他事情,你可以随时实现你的警卫。

我发现它在开发时特别对乘客非常有用,因为它会在您更改需要重新启动服务器的内容(即路由、配置等)后立即重新加载服务器。

一些可用的守卫可以以某种方式替换,例如使用 yard 你可以启动它自己的服务器,但是你需要两个不同的进程,使用守卫你可以用一个进程完成所有工作。

换句话说,Guard 更像是一个通用框架,适用于需要执行由文件更改触发的操作的每个进程,自动测试仅限于运行测试。

更新

回应您的评论

如果您有 Rspec > 2.8--rand ,您可以在.rspec文件中使用随机化规范顺序。以这种方式,这是以 rspec 顺序实现的,并且当您使用或使用可执行文件调用 rspec 时,它也可以工作。rakerspec

对于较少的文件,有无警卫

此外,最新版本的guard 还嵌入了一个Rails 控制台,当guard 空闲时可以使用pry,这在开发模式下非常有用。

于 2011-08-28T17:54:52.187 回答
-1

Minitest、spork 和 guard 不能一起工作。 LoadError: no such file to load -- -r

因此:https ://github.com/semaperepelitsa/spork-minitest/issues/2

所以我切换到自动测试(请参阅自述文件中 Michael Grosser 的轻量级测试套件)。Fsevent 似乎减少了 CPU 负载,但它不像我使用 fsevent 的旧 Guard 设置那样“反应灵敏”。我不确定为什么。

更新:实际上我知道为什么。我在自动测试中打开了一个(小)问题: https ://github.com/grosser/autotest/issues/33

这是 1 秒的睡眠默认值。我有一个解决这个问题的方法,但它是一个黑客。不知道优雅的解决方案。有了它,它的运行速度和 Guard 一样快,并且可以与 Minitest 一起使用。

Autotest+Minitest 似乎无法进行彩色输出,因为它不是 tty。这与 Autotest iirc 无关。我喜欢 Guard 的 Guardfile 设置,我不知道 Autotest 中的“观察者”在哪里。到目前为止,它只是有效,但这可能是一个问题。

于 2012-09-07T20:42:18.990 回答