2016-09-29 7 views

答えて

1

公式のコマンドライン構文は、必要に応じて使用すると、特定の位相を選択するためにorg.myorg.ClassToTestまたはorg.**.*、および-unitまたは-integrationなど、テストしたいものの完全な名前空間、クラス名と一致するパターンが続いgrails test-appは、あります。 docsを参照してください。

しかし、Grails 3.1.10にはいくつかの欠点があります。

1)grails test-appは、必ずしも依存関係管理のバグであるとは限りません。最初にbuild/reports/tests/index.htmlでテストレポートを削除した場合、grailsは実際には新しいレポートを生成するために何かをする必要があることがわかります。

2)時には物事がランダムに変わってしまうことがあります。その場合は、grails clean; grails test cleanを実行してください。 (私はまだあなたが本当に両方か、どちらか一方しか必要としていないかはまだ分かっていません)

3)公式の方法はうまくいくはずです。また、特定の統合テストのみを実行する場合は、-integrationを追加する必要があります。そうしないと、エラーが発生します。私はそのようなフラグがないと思っていますが、Grailsは無条件に最初に単体テストと統合テストを実行しようとします。テストパターンが単体テストと一致しない場合、grailsはエラーになります。同様にパターンが単体テストと一致する場合は-unitを追加するか、エラーが発生しますが、この場合は正しいテストレポートが得られます。

4)別の方法として、-Dtest.single=<classname>フラグを使用する方法もあります。これは、gradleによって選択されるシステムプロパティを設定します。 -unitフラグを追加しただけでは正常に動作しましたが、深くは調査しませんでした。

0

私は通常、注釈@IgnoreRestを使用します。 import spock.lang.IgnoreRestを覚えて、指定されたクラスでテストを実行してください。あなたがパターンの前に-integrationフラグをつけた場合はここで

2

は、単一の統合テスト

grails test-app *LoginFunctional* -integration 

を実行するためのサンプルコマンドで、テスト-appコマンドは、パターンを無視し、すべての統合テストを実行します。

+0

これは最近私を夢中にさせてくれました。ありがとうございました。 – Lithium

関連する問題