2010-12-06 17 views
14

私は他の誰かの仕事に基づいたRails3アプリを持っています。何らかの理由で彼らは私がイライラしていることを知っているアプリでテストを提供しないことにしました。既存のモデル/コントローラからのテストのみを生成する

私ができることをしたいのは、すべての既存のコントローラとモデルのテストを足場でテストしているので、私はtest :: unitで自分自身でテストを作成することができます。私はモデルやコントローラを作り直したくないだけで、テストを作成するだけです。

私はRailsに慣れていて、これを行う可能性のあるrakeコマンドを捜し求めてきましたが、これまでのところ運が全くありません。どのようなアドバイス/指示が最も感謝しています。

答えて

15

私はそれは少し古いです知っているが、あなたがこれを行うことができます:

rails g scaffold Post -s 

-sは、それがすでに作成されたファイルをスキップします。また、フラグを使用しない場合は、ファイルを上書きするかどうかを尋ねるだけなので、心配はありません。唯一の既存のRails 3アプリケーション用に関連したテストファイルを生成するには

+2

あなたは--skip-migrationsを使いたいと思うかもしれません。 – chug2k

+0

ありがとう、これはほぼ完璧ですが、 'test_helper.rb'がありません – ericn

1

私が知っているこれを行う方法はありません。一時的なレールプロジェクトを作成し、すべてのモデル用の足場を生成し、その結果のテストディレクトリを実際のプロジェクトにコピーするのはかなり簡単です。

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/ 

など

この答えは時代遅れになりました。最新のレールバージョンでは、スキップオプションを使用して欠落しているファイルのみを生成することができます。

+0

同意しましたが、私がGoogleにできたすべてのアドバイスを試してみましたが、この1人だけが本当に助けてくれました。 –

13

、私は「リソースを生成」が、私はしたくない、すべてをスキップ使用:

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

その他のオプションは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 

なぜ使用しないのですかgenerate scaffold?私が使用していないビューを生成する可能性があるからです。

関連する問題