Top / Java / jcoverage / ServletなどJ2EE環境で使う。

クライアントサイドのjcoverageに関しては何とか動いたようです。いよいよサーバサイドのカバレッジ計測をやってみようと思います。確認は以下のような環境で行いました。

プロダクトバージョン役割
WebSphereWebSphere 5.0.2テスト環境*1WEBコンテナ
Cactus1.7.1サーバサイドテスティングフレームワーク
Junit3.8.1テスティングフレームワーク
jcoverage1.0.5カバレッジツール

Cactusとはサーバサイドのテスティングフレームワークです。JUnitのクラスを拡張して、WEBコンテナ上でテストを行うためのクラス群を提供します。

具体的には、requestパラメータにいろいろな値をセットしてブラウザのリクエストをシミュレーションすることや、ブラウザへ返却される画面に正しく値がセットされてるかをチェックするクラスなどを提供してくれます。

さて、前回にJUnitとの連携まではやりましたが、今回がいままでと違うところはWEBコンテナ上で稼働する箇所とクライアントで稼働する箇所があるというところです。つまりリクエスト情報を構築してリクエストを放るまではクライアント側のJavaVM,リクエストを受けて処理をしてクライアントに返すまではWEBコンテナ上のJavaVM、という方式になります。クライアント側のカバレッジ計測についてはある意味いままでと変わらないのですが、WEBコンテナで稼働する部分のカバレッジ計測をどうするかというところがポイントになります。いろいろ調べた結果、以下のようなやり方でやればよい(ような気がする)事がわかりました。

難しいのは、デプロイするearにアーカイブされるクラスにどのようにデバッグを埋め込むか、ですね。通常開発環境でのコーディング・テストフェーズでは、自分でアーカイブを作ることはせず、開発環境が勝手にデプロイしてくれることが多いからです*2。これに関してはclassesにデバッグ埋め込み済みのコードを配置するようビルドする、ことで解決できそうです。

さて例でやってみます。

準備

手順

手順は、Eclipseでコンパイル -> AntでInstrument -> WEBコンテナ起動 -> EclipseでCactus起動 -> Antでレポート

となります。ポイントは

って事です。


この記事は

選択肢 投票
おもしろかった 0  
そうでもない 0  

Top / Java / jcoverage / ServletなどJ2EE環境で使う。

現在のアクセス:17383


*1 Studioについてくるヤツ
*2 WebSphereなどに限らず、最近の環境はどこでもそうですよね

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS