首页 / 知识
关于ruby:为什么RSpec在Rails下这么慢?
2023-04-15 14:16:00

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上才能使其变得活泼(我也在使用自动测试)。 |
最新内容
相关内容
linux使用命令的方法?
linux使用命令的方法?,系统,信息,工具,标准,数据,命令,左下角,目录,文件夹,图标,linux的cd命令的使用方法1、cd ~:回到用户家目录。注:这得看你linux设备加载命令?
linux设备加载命令?,系统,设备,信息,电脑,第一,命令,文件,分区,磁盘,详细信息,linux设备加载信息文件在哪看1、在Linux系统中,以 文件 方式访问linux网卡加载命令行?
linux网卡加载命令行?,系统,地址,代码,网络,设备,电脑,名称,网卡,技术指标,信息,如何配置Linux网卡配置网卡地址:点击 网络(K) 按钮进行配置网linux命令刷新加载?
linux命令刷新加载?,系统,下来,工具,网上,命令,终端,环境变量,以下,文件,路径,如何在linux添加路径到PATH环境变量中1、设置JAVA_HOME:打开终端加载linux内核的命令?
加载linux内核的命令?,系统,信息,地址,电脑,发行,设备,简介,平台,发展,基础,linux开机启动会依次加载哪些脚本?一般的/etc/rc.d/init.d/目录下linux初始化硬盘命令?
linux初始化硬盘命令?,系统,工作,设备,工具,信息,基础,地址,电脑,命令,数据,linux基础命令1、linux系统常用操作命令如下:ls:全拼list,功能是列出linux加载没有的命令?
linux加载没有的命令?,系统,服务,工具,信息,设备,标准,工作,命令,检测,代码,我的linux系统没有chkconfig命令怎么办?chkconfig命令属于readhat加载变量的linux命令?
加载变量的linux命令?,工具,系统,名称,环境变量,环境,命令,用户,文件,变量,方法,linux如何添加自定义变量1、方法一:用export命令,输入“exportlinux模块化加载命令?
linux模块化加载命令?,软件,系统,设备,代码,信息,环境,适当,资料,网上,电脑,如何编译加载linux驱动和内核模块将编写的源代码复制到 Linux 内linux命令加载模块?
linux命令加载模块?,设备,系统,工具,检测,信息,模块,内核,文件,命令,杂项,linux操作系统中,加载和删除内核模块的命令是什么?卸载模块 如果你linux命令输入方法?
linux命令输入方法?,系统,电脑,密码,管理,地址,命令,网站,工具,首开,位置,linux终端输入~怎么弄中间在电脑上打开需要的Word文件进入。进入到文linux命令加载驱动?
linux命令加载驱动?,官网,电脑,系统,材料,网络,软件,设备,地址,下来,服务,openwrt安装linux网络驱动1、找到无线适配器,单击,出现驱动然后点击右