【发布时间】:2012-12-06 19:32:16
【问题描述】:
我正在使用以下技巧(来自 http://mikbe.tk/2011/02/10/blazingly-fast-tests/)来确保在每次使用 Spork 运行的 RSpec 时重新加载模型:
Spork.each_run do
load "#{Rails.root}/config/routes.rb"
Dir["#{Rails.root}/app/**/*.rb"].each { |f| load f }
# .....
end
但是,每次我运行测试时它都会导致以下警告:
/myproject/app/models/model.rb:36: warning: already initialized constant CONFIGURABLE
我可以通过放置来避免:
if !defined?(A_CONSTANT)
在每个常量之后,这看起来并不正确(但它有效)。关于如何使这项工作正常工作的任何建议? (即我的模型仍然会在测试中重新加载,但我不必在每个常量定义之后都加上 if。)
【问题讨论】:
-
不确定您的警告问题,但我也一直在研究 RSpec 测试套件的性能测试,因此您可能会为您的 spec_helper.rbthis StackOverflow answer /b> 文件。
-
我已经看到当您声明一个同名的常量时会发生这种情况,但在规范而不是您的生产代码中。
标签: ruby-on-rails rspec constants spork