2010-12-06 3 views
14

Ich habe eine Rails3-App, die auf der Arbeit einer anderen Person basiert. Aus irgendeinem Grund entschieden sie sich dafür, die Tests nicht mit der App zu liefern, was ich frustrierend finde.Nur Tests von vorhandenen Modellen/Controllern generieren

Was ich tun möchte, ist die Tests für alle vorhandenen Controller und Modelle zu scaften, damit ich einen Vorsprung beim Erstellen der Tests selbst in Test :: Einheit bekommen kann. Ich möchte die Modelle oder Controller nicht neu erstellen, sondern nur die Tests erstellen.

Ich bin neu in Rails, und habe für den Rake-Befehl, der dies tun könnte, aber alle bisher ohne Glück gejagt. Jeder Rat/Richtung am meisten geschätzt.

Antwort

15

Ich weiß, es ist ein wenig alt, aber Sie können dies tun:

rails g scaffold Post -s 

Die -s macht es die Dateien überspringen bereits erstellt. Wenn Sie das Flag nicht verwenden, werden Sie nur gefragt, ob Sie die Datei überschreiben möchten, also keine Sorge.

+2

Sie möchten wahrscheinlich auch --skip-Migrationen verwenden. – chug2k

+0

Danke, das ist fast perfekt, aber 'test_helper.rb' fehlt – ericn

1

Es gibt keine Möglichkeit, dies zu tun, was mir bekannt ist. Es wäre jedoch ziemlich einfach, ein temporäres Rails-Projekt zu erstellen und Scaffolds für all Ihre Modelle zu erstellen und das resultierende Testverzeichnis in das reale Projekt zu kopieren.

I.e.

rails new temporary 
cd temporary 
rails g scaffold Post title:string body:text 
rails g scaffold Comment post:references author:string body:text 
cp -r test ../real_rails_app/ 

usw.

Diese Antwort ist jetzt veraltet. Mit den aktuellen Rails-Versionen können Sie nur die fehlenden Dateien mit der Skip-Option generieren.

+0

Zustimmen, war in der gleichen Situation, versuchte alle Ratschläge, die ich googlen konnte und nur dieser eine wirklich geholfen –

13

nur, um die dazugehörigen Testdateien für eine vorhandene Rails 3 App zu erzeugen, verwende ich „Ressource generieren“, aber alles überspringen, die ich nicht will:

rails g resource Post --skip --no-resource-route --no-migration --no-helper --no-assets 

Weitere Möglichkeiten gefunden werden können mit rails generate resource --help

-s, [--skip]  # Skip files that already exist 
--resource-route   # Indicates when to generate resource route 
[--helper]    # Indicates when to generate helper 
[--assets]    # Indicates when to generate assets 
[--migration]   # Indicates when to generate migration 

Warum nicht verwenden? Weil es möglicherweise Ansichten generiert, die ich nicht verwende.