Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Spring rspec未加速测试_Ruby On Rails_Ruby_Spring_Rspec - Fatal编程技术网

Ruby on rails Spring rspec未加速测试

Ruby on rails Spring rspec未加速测试,ruby-on-rails,ruby,spring,rspec,Ruby On Rails,Ruby,Spring,Rspec,在我们的测试套件中运行单个测试需要20-30秒。在添加spring和spring命令rspec之前,运行测试的输出如下所示 Finished in 21.99 seconds (files took 21.64 seconds to load) 1 example, 0 failures Randomized with seed 52406 22秒的文件加载时间表明添加上述gem会有所帮助,但在这样做之后,测试仍然很慢(我正在使用bundle exec-spring-rspec[path_-

在我们的测试套件中运行单个测试需要20-30秒。在添加
spring
spring命令rspec
之前,运行测试的输出如下所示

Finished in 21.99 seconds (files took 21.64 seconds to load)
1 example, 0 failures

Randomized with seed 52406
22秒的文件加载时间表明添加上述gem会有所帮助,但在这样做之后,测试仍然很慢(我正在使用
bundle exec-spring-rspec[path_-to_-spec]
。新的输出(见下文)表明文件时间实际上已经大幅提高(从21.64秒降至1.25秒),但测试的总体速度基本相同。根据我所读到的添加这些宝石的预期效果,这似乎非常奇怪和出乎意料

Finished in 21.86 seconds (files took 1.25 seconds to load)
1 example, 0 failures

Randomized with seed 7594

关于为什么测试仍然如此缓慢,有没有人有关于如何解决这个问题/加快测试速度的建议?谢谢。

老实说,这是我所期望的。Spring的存在理由是加快文件加载速度——一旦RSpec开始运行,Spring的工作就完成了。它完成了相当多的工作——从21.64秒到1.2秒5号相当不错

现在,您可以专注于RSpec正在做什么以及如何加速。虽然RSpec有一个
--profile
选项,可以告诉您哪些示例运行得最慢,但在上面的输出中,您只有一个示例,因此不会告诉您任何您不知道的事情

例如,如果是一个系统测试,需要花费时间启动某种形式的无头浏览器,那么您可能会发现添加更多的测试并不会使运行时间增加一倍或三倍,因为设置是跨测试共享的,并且“缓慢的测试套件”的印象可能会消失我会非常担心的


网站上的这篇文章提供了一些指针,用于查看整个测试套件的缓慢补丁在哪里(主要涉及
TestProf
gem)。对于单个测试来说,这可能有点过头了,但是如果你没有其他方法来找到线索,你可能会在其中找到一些用处。

我会先运行
rspec--profile
谢谢你的提示!也可能是作者只是从一个更大的测试套件中运行了一个测试。可能是,但21.86秒的运行时间是针对单个测试的正如我所说的,对于一个系统测试,无论您运行多少个测试,都有固定的设置成本,这与您运行的应该是相当简单的单元测试不同。