2013-11-28 5 views
10

Wir haben zwei Web-Apps, die dieselbe Datenbank und dieselben Modelle verwenden. Um es DRY zu halten, haben wir eine Engine erstellt, die all diese Modelle enthält. Diese Engine ist in den jeweiligen Apps über die Gemfile enthalten. Wir haben Tests mit RSpec und FactoryGirl im Motor.So verwenden Sie FactoryGirl-Factorys von einer Engine

Jetzt versuchen wir, Integrationstests zu schreiben, und wir möchten die Fabriken von der Maschine ohne Kopieren oder Symlinking verwenden. Gibt es einen Weg, dies programmatisch zu erreichen?

+0

Ich wünschte, ich wüsste die Antwort - recherchieren genau diese Frage jetzt>< – nashape

Antwort

12

Ok, so funktioniert das: https://github.com/thoughtbot/factory_girl_rails/pull/42

Da es auf diesem Pull-Request sagt, sind diese Code-Schnipsel in Ihrem Core-Engine.

Im Core-Engine müssen Sie auch Ihre „.gemspec“ Datei ändern in den ‚spec/Fabriken‘ Dateien hinzufügen:

s.files = Dir["{app,config,db,lib}/**/*", "spec/factories/**/*", "LICENSE", "Rakefile", "README.md"] 

Da nun die Fabriken zur Verfügung stehen in der Anwendung, die den Motor enthält .

+0

Ehrfürchtig, das hat den Trick! Danke und schöne Ferien für Sie! – Wukerplank

+0

Gern geschehen! Ich war froh, dass es auch für mich funktionierte: D – nashape