2010-12-06 87 views
14

我有一個基於別人工作的Rails3應用程序。出於某種原因,他們決定不提供測試與應用程序,我覺得很沮喪。僅從現有模型/控制器生成測試

我希望能夠做的就是對所有現有的控制器和模型進行測試,以便我可以在test :: unit中自己創建測試。我不想重新創建模型或控制器,只需創建測試。

我是Rails的新手,爲可能做到這一點的耙指令尋找機會,但迄今爲止都沒有運氣。任何建議/方向最受讚賞。

回答

15

我知道這是一個有點老,但你可以這樣做:

rails g scaffold Post -s 

-s使得它跳過已經創建的文件。另外,如果你不使用標誌,它會問你是否要覆蓋文件,所以,不用擔心。

+2

你也可能想使用--skip-migrations。 – chug2k 2012-07-23 21:56:24

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/ 

這個答案現在已經過時了。最新的Rails版本允許您僅使用跳過選項生成丟失的文件。

+0

同意,是在相同的情況下,嘗試所有建議,我可以谷歌,只有這一個真的幫助 – 2014-09-30 12:58:50

13

只生成相關的測試文件在現有的Rails應用程序3,我用「生成資源」,但跳過,我不想要的一切:使用

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?因爲它可能會生成我沒有使用的視圖。