Why is RSpec so slow under Rails?每当我为Rails应用程序运行rspec测试时,它实际上就需要花费一整天的时间才能真正开始运行测试。 为什么rspec这么慢? 有没有一种方法可以加快Rails的初始加载速度,或者只选择我需要的Rails应用程序的一部分(例如,仅ActiveRecord内容),这样就不会完全加载运行某些测试的所有内容? 我绝对建议您检查spork。 http://spork.rubyforge.org/ railstutorial专门解决了这个问题,并给出了一种解决方法,以使spork在rails 3.0中正常运行(目前,spork还不是现成可用的rails 3)。 当然,如果您未使用Rails 3.0,那您应该很好了。 本教程的部分显示了如何使Spork在Rails 3.0中运行 http://railstutorial.org/chapters/static-pages#sec:spork 检查Spork是否已准备好Rails 3.0 http://www.railsplugins.org/plugins/440-spork
通过在单独的终端窗口中运行
我认为您正在寻找的"禅宗"体验是在后台运行 但是,我在使这两个程序进行通信时遇到问题。 我在这里找到了解释:
但是,我们如何解决这个问题?我猜想这将涉及下载ZenTest并更改
真正的罪魁祸首是如果使用
此任务将删除您的整个测试数据库,然后从头开始重新创建它。这对我来说似乎很荒谬,但这就是它的作用(当您运行
您可以使用rspec作为rspec gem的一部分安装的 像这样:
为什么rspec这么慢?因为它加载了所有环境,加载了设备和所有爵士乐。 有没有一种方法可以加快Rails的初始加载速度,您可以尝试使用模拟而不是依赖数据库,这实际上对单元测试是正确的,并且可以最终加快单元测试的速度。另外,使用@Scott Matthewman提到的规范服务器可以提供帮助,与@ Marc-Andre Lafortune提到的zentest的自动测试相同 有没有一种方法可以选出我需要的Rails应用程序的一部分(例如,仅ActiveRecord内容),以便它不会完全加载所有内容来运行一些测试?那这个呢
我不确定rspec任务如何与之集成,但是您可以肯定地使用test:recent任务作为模板来对rspec测试执行相同的操作。
还不存在 运行测试可能真的很慢,因为必须加载整个Rails环境(尝试脚本/控制台),然后才能运行所有测试。您应该使用自动测试来保持环境加载,并检查要编辑的文件。当您编辑和保存文件时,只有依赖于这些文件的测试才会自动且快速地运行。 您在Rails上运行吗?如果是这样,不是RSpec的初始化很慢,而是Rails。在运行规范之前,Rails必须初始化整个代码库和您自己的代码库。好吧,它不是必须的,但确实如此。在我的小型无轨项目下,RSpec对我而言运行非常快。 主要原因是由于某种原因,require永远在Windows上使用。
提速提示: 您可以尝试使用" faster_require"来缓存位置: http://github.com/rdp/faster_require
GL。 从rspec-rails-1.2.7开始,不推荐使用spec_server来支持spork gem。 如果您使用的是Mac,我建议您通过自动测试使用Rspactor,因为它比自动测试使用更少的资源来轮询更改的文件。既有完整的可可版本 RSpactor.app 或我在Github维护的gem版本
尽管这些并不能加快单个rspec的测试速度,但它们的速度要快得多,因为它们会在您单击保存后的一秒钟内自动运行受影响的规范。 如果您在Windows环境中,那么可能几乎无能为力,因为Rails似乎在Windows下启动真的很慢。我在Windows上也有同样的经验,必须将安装程序移到Linux VM上才能使其变得活泼(我也在使用自动测试)。 |