繁体   English   中英

在Rails中,如何在特定的Rspec测试之前加载所有代码?

[英]In Rails, how can I eager load all code before a specific Rspec test?

我有一些Rspec测试有时会失败并出现错误: Circular dependency detected while autoloading constant 这些测试是多线程的(rufus-scheduler测试),这显然是自动加载代码的已知问题( http://route.github.io/2013/11/13/rails-autoloading.html )。

如果我在config / environments / test.rb中设置config.eager_load = true ,我可以使测试始终如一。 但是,我担心当它变得越来越大时,这将真正减慢我的测试套件的其余部分。 有没有办法为我的多线程测试设置这个eager load选项?

Rails 4.1.4

在{MyApp :: Application.eager_load之前添加! }仅作为此文件/套件的设置。 (同意上面的@SterlingParamore)

仅供参考:您需要将它放在before{}而不是仅仅放在describe的主体中,因为否则只要加载文件就会发生(例如,即使您正在加载该文件,但是针对带有标记的其他规范) ,例如rspec spec --tag=focus )。

在test.rb配置中设置config.eager_load = true 减慢第一次测试的时间,除非您使用的是Spring(毕竟设计用于加速在后续测试运行中首次测试的时间)。 但是,如果您使用Spring,可能值得交叉引用https://github.com/rails/spring/issues/519 ,尽管这与完全不同的急切加载问题有关。*

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM