21

Ich kam vor kurzem zu einer Firma, die seit einiger Zeit an einem bestimmten Schienenprojekt arbeitet. Da ich mitten im Entwicklungsprozess bin, fange ich an, zurückzugehen und Tests für den vorhandenen Code sowie den gerade produzierten Code zu schreiben. Testen der Rails 4 App war einfach genug, aber sobald ich zum Testen des Motors kam, traf ich einen mentalen Block. Nach meiner Due Diligence fand ich heraus, dass die meisten Leute einen solchen Ansatz verfolgen (http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl), aber der rote Faden in all diesen Antworten war, dass Leute diese Apps von Grund auf neu erstellten und daher eine Dummy-App für sie erstellten automatisch. Ich habe nicht den Vorteil, dass ich alles von Grund auf neu erstellen kann und mit dem, was mir gegeben wurde, arbeiten muss. Was ich also wissen möchte, ist, ob es eine Möglichkeit gibt, die Dummy-Anwendung nur zu generieren. Kann ich etwas Einfaches in die Konsole eingeben und für mich generieren lassen? Oder gibt es eine längere, etwas weniger schöne Route? Oder wäre eine andere Strategie insgesamt besser?So generieren Sie eine Dummy-App innerhalb einer bereits vorhandenen Schienen-Engine

+0

Sie können 'spec/dummy' jede App setzen, dies ist nur Mount-Punkt für Sie-Engine, nur generieren' Rails new test_app' und kopieren Sie 'test_app' in Dummy-Ordner. –

+0

Warum brauchst du die Dummy-App? Können Sie die Engine nicht mit der Haupt-App testen? – Jwan622

Antwort

32

Da die Dummy-App ist nicht außer einigen vagen Namen der Mutter gem gebunden werden soll, dass kann tun es:

cd some_path_where_your_engine_IS_NOT 
rails plugin new YOUR_ENGINE_NAME --mountable --dummy-path=spec/dummy --skip-test-unit 
mv YOUR_ENGINE_NAME/spec/dummy /real/path/to/YOUR_ENGINE_NAME/spec 
rm -rf YOUR_ENGINE_NAME # cleanup useless cruft 

Auch Sie interessiert sein an this answer die erzeugen App mit der exakt gleichen Schienenversion.

+0

Geben Sie eine Rails-Version mit '_VERSION_' als erste Option für den Befehl' rails' an. Um beispielsweise Rails 5.0.1 zu verwenden: 'rails _5.0.1_ plugin new YOUR_ENGINE_NAME --überwindbar --dummy-path = spec/dummy --skip-test-unit' –