2010-12-06 59 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?因为它可能会生成我没有使用的视图。

相关问题