0

コマンド「create-controller」を使用してコントローラーを生成すると、Grails はコントローラーと単体テストを生成します (テンプレート /src/templates/scaffolding/Test.groovy を使用)。

テンプレートのビットを変更した後、単体テストを新たに生成したいのですが、Grails はそれらを生成しません。私は試した:

  • "create-unit-test"ただし、これはテンプレート /src/templates/testing/UnitTest.groovy を使用し、テンプレート /src/templates/testing/Generic.groovy "create-integration-test"を使用します

では、Test.groovy テンプレートを使用してコントローラーの単体テストを生成するにはどうすればよいでしょうか?

4

1 に答える 1

1

成果物を作成するとき、またはスキャフォールディングを使用するとき、Grails はテンプレートを使用してドメイン クラス、コントローラー、ビューなどを作成します。既定のテンプレートは、すぐに使用できるように Grails ディストリビューションの一部ですが、プロジェクト固有のニーズに合わせてカスタマイズできます。

コード生成中に Grails が使用するテンプレートをプロジェクト ディレクトリにコピーします。

$ grails install-templates

src/templates/
├── artifacts
│   ├── Tests.groovy
│   ├── ...
├── scaffolding
│   ├── Test.groovy
│   ├── ...
└── war
    └── web.xml

artifacts ディレクトリには、create-* コマンドで使用されるテンプレートが含まれています。
scaffolding ディレクトリには、generate-* コマンドで使用されるテンプレートが含まれています。
war ディレクトリには、デプロイメント記述子の生成に使用される web.xml テンプレートが含まれています。

したがって、編集する必要があります:

  • src/templates/artifacts/Tests.groovyファイル、grails create-unit-testまたはgrails create-integration-testコマンドを実行するとき。

  • src/templates/scaffolding/Test.groovygrails generate-allまたはgrails generate-controllerコマンドを実行するとき。

あなたの場合、コントローラーテストを再生成し、テストファイルのみを上書きします:

$ grails generate-controller com.arturoherrero.Post
| Generating controller for domain class com.arturoherrero.Post
> File /grails-app/controllers/com/arturoherrero/PostController.groovy already exists. Overwrite?[y,n,a] n
> File /test/unit/com/arturoherrero/PostControllerTests.groovy already exists. Overwrite?[y,n,a] y
| Finished generation for domain class com.arturoherrero.Post
于 2012-11-12T20:25:41.350 に答える