簡體   English   中英

僅生成現有模型/控制器的測試

[英]Generate only tests from existing model / controllers

我有一個基於別人工作的Rails3應用程序。 出於某種原因,他們決定不提供應用程序的測試,我覺得令人沮喪。

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

我是Rails的新手,並且已經找到了可能會執行此操作的rake命令,但到目前為止一切都沒有運氣。 任何建議/方向最受贊賞。

我知道它有點舊,但你可以這樣做:

rails g scaffold Post -s

-s使它跳過已創建的文件。 此外,如果您不使用該標志,它只是詢問您是否要覆蓋該文件,所以,不用擔心。

要僅為現有的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 因為它可能會生成我不使用的視圖。

我知道沒有辦法做到這一點。 只需創建一個臨時rails項目並為所有模型生成腳手架然后將生成的測試目錄復制到實際項目中將非常容易。

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版本允許您使用skip選項僅生成缺少的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM