所以在进一步之前,我想尝试找到方法来减少运行这些测试所需的时间 – 希望无需实际更改测试.@H_404_3@
在大多数情况下,我试图使用存根.但是,当我测试模型和查询时,我使用数据库.@H_404_3@
我认为database_cleaner正在放慢速度,但我不知道如何测试查询和没有它的东西.@H_404_3@
使用sqlite3与“:memory:”选项似乎只能刮掉约10秒(令人失望的结果…)@H_404_3@
我能做些什么来真正加快测试速度?@H_404_3@
解决方法
>使用spork – Spork将执行所有的引导和环境需要一次,将其保存在内存中,只重新加载测试.快速运行测试可能是一个巨大的帮助.聪明的测试 – 个人来说,我的工作流程是开发测试,运行完整的测试套件来查看失败,然后只运行新的/失败的测试,直到我能得到这些绿色.最后,当我完成我最后一次运行套件,看看我是否倒退了别的东西.清理你的宝石文件 – 大部分的Rails启动时间花在了需求上,如果你有宝石,你再也不用了,你加载时间就没有任何好处.取出你没有使用的任何东西,并考虑将东西仅用于一个或两个点在命名组中,以便您可以在执行期间手动要求它们(请注意,您正在交易请求性能的初始加载速度,对于开发人员来说是非常棒的,但是对于生产来说很糟聪明地了解什么是存根和模拟 – 如果你真的在做单元测试,例如,你应该避免触摸数据库,或者至少是你的控制器测试.想想课堂的责任究竟是什么.控制器不负责保存记录,负责告诉模型保存记录.即使模型不负责保存数据库中的东西,他们负责告诉ActiveRecord.>如果你把东西很好地保留下来,请考虑不包括Rails.您将需要将几乎所有的ActiveRecord功能都放在测试中,但是如果可以这样做,您将看到测试时间大大减少(可能超过一个数量级).@H_404_3@