2012-04-18 16 views
4

私は最近、MVCテスト用のSpringプロジェクト:spring-test-mvcを発見しました。それは素晴らしいツールです、そして私は将来もっと使いたいと思っています。Jenkins on Sonarでspring-test-mvcの問題

しかし私はJenkins CIで問題が発生していることに気付きました。問題は、MVC統合テストがローカルで、またJenkins CIジョブであっても、JenkinsのSonarプラグイン実行で問題が発生することです。この場合、 "。andExpect()"メソッドを使ってすべてのアサーションが失敗しました。はい、ソナープラグインが使用されていない場合は合格します。上記テストコンテンツタイプとセッションで

例えば

this.mockMvc.perform(get("/someController/some.action").param("someParam", "someValue")) 
    .andExpect(status().isOk()) 
    .andExpect(content().type(MediaType.APPLICATION_JSON)) 
     .andExpect(request().sessionAttribute("someAttribute", notNullValue())); 

アサーションが失敗している属性。 アイデア前もって感謝します。

+0

私はこのトピックに関する問題を作成しました。詳細はこちら[こちら](https://github.com/SpringSource/spring-test- mvc/issues/34) –

答えて

0

問題は、spring-mvcからの種類の人によって解決されます。詳細については、linkに記載されています。要するに、私のケースでは、SonarはCoberturaをカバレッジテストに使用します。

CoberturaのインターフェイスHasBeenInstrumentedを追加し、そのせいで のクラスは、それがCoberturaのマーカーインタフェースです ので、非常に有用ではありませんつのインターフェイスで 合成プロキシクラスを意味し、代わりにJDKダイナミックプロキシとして飾られています。その結果、コントローラは となることはありません。アノテーションが正しく検出されることはありません。

問題は私も同じ問題に直面してproxy-target-class="true"<tx:annotation-driven>の要素

0

を追加することによって解決されます。 Cobertura jarのバージョンを最新バージョンにアップグレードしました。この変更により、JUnitテストケースがJenkinsと同様にローカルで実行されました

関連する問題