2011-05-16 6 views
1

私はセットを持っていますテストは1つではなく他のテストでは通過しますが、それを呼び出す2つの方法に基づいて統合フェーズで異なるものを見つけることはできません。Grailsの違い違いはGrailsのテストアプリ対Grailsのテストアプリを経由して-integration</p> <p>をGrailsのテストを実行しているの統合の段階では何​​-integration

+0

Jeff、grails test-appを実行しているときに失敗したテストは、GrailsConfigクラスのプロパティを使用していますか? – Maricel

+0

私は直接見ていません。 –

+0

GrailsConfigを使用しているときに統合テストで同じ問題が発生しました。ユニットテストによってオブジェクトがクリアされ、統合前に再ロードされない場合など、デフォルト値を使用し、それを固定した。 – Maricel

答えて

3

grailsでの単位テストは、環境設定なしで実行されます。データベースはありません。オブジェクトとGormは嘲笑され、テストのためにドメインオブジェクトを設定するために特別なことを行う必要があります。そして、あなたはhqlベースのクエリをテストするようなことはできません(私はこの機能が新しいバージョンのgrailsに入っていると思います)。ブートストラップコードが実行され、すべてのdb呼び出しが実際に実行されているデータベースに移動します(異なる場合は、データソースで設定できます)。統合テストからサービスメソッドを呼び出すと、トランザクションとその他のすべてを含むdbに移動します。またSpring Beanのautowiring/dependency injectionステップが実行されるので、すべてのサービスが完全に配線され、実行可能になります。

これは一般的な概要です。テストや失敗を見ずに、何が間違っているのかが分かりません。

+0

問題は統合フェーズでのテストはgrails test-appでテストを開始すると失敗しますが、grails test-app -integrationでテストを開始すると失敗します。私は主に、2つの呼び出しの間の統合フェーズで異なるものを探します。 (別の質問で正確なエラーを投稿します) –

+0

すべてのテストがほんの一部ではなく、以前のバージョンのgrailsで作業していたことに注意してください。 –

+0

ユニットと統合テストは、完全に異なるフェーズで独立しています。失敗したテストを投稿できますか? – hvgotcodes

2

私も同様の問題がありました。 理由はわかりませんが、統合テストの順番が異なります。 これは、setUp/tearDown中にエラーになります。基本的には1つのtearDownにいくつかの問題があり、setUpで作成されたすべてのオブジェクトを削除しませんでした。これにより、次のテストでエラーが発生します。

価値チェック。

+0

これはまさに起きていますtest-appとtest-appの間でテスト順序が変わるようです - インテグレーション –

+0

しかし、これは簡単な結論につながります:あなたはあなたのtearDownに何か問題があります - あなたのDBをsetUpの前の状態に残すべきです。 – Krystian

+0

ええ、テストの実際の問題の議論のために、http://stackoverflow.com/questions/6019758/integration-tests-started-to-fail-with-grails-upgradeを参照してください。この質問は実際の違い2つの実行の間になるだろう。 –

関連する問題