我已经为我的一个项目创建了几个工厂并为 rspec 创建了一些示例。我的一切都在我的本地工作。甚至,对于 ruby 版本:1.9.2 和 1.9.3,我的本地规范都是绿色的。我只是不明白为什么 travis-ci 无法构建相同的提交。
这是 travis-ci 构建的链接:
工作 #1(构建 64):https ://travis-ci.org/suryart/spree_active_sale/builds/5850619
工作 #2(构建 65):https ://travis-ci.org/suryart/spree_active_sale/builds/5850754
我觉得这很奇怪的原因是,构建 64 未能针对 1.9.2 的 ruby 版本运行规范,并通过了 1.9.3。但是,构建 65 无法针对 1.9.3 的 ruby 版本运行规范,并且无法通过 1.9.2。两个版本的代码都没有变化。
但是,对于两个失败的构建都会抛出相同的错误:
/home/travis/.rvm/gems/ruby-1.9.2-p320/gems/factory_girl-4.2.0/lib/factory_girl/registry.rb:24:in `find': Factory not registered: active_sale (ArgumentError)
from /home/travis/.rvm/gems/ruby-1.9.2-p320/gems/factory_girl-4.2.0/lib/factory_girl/decorator.rb:10:in `method_missing'
因为,代码很长。我将从 github 上的提交中引用它。
据我所知,问题来自第 5 行的 active_sale_factories.rb 中的这一行:
factory :active_sale, :class => Spree::ActiveSale do |f|
name "Dummy Sale"
end
无法从 inactive_sale_factories.rb 定义的工厂中确定。
我是 rspec 和工厂的新手,第一次做这一切。如果您能解释这种行为或指出我在这里做错了什么,将不胜感激?或者也许可以在这里帮助我解决这个问题?
谢谢