Java EJBアプリのコードカバレッジ
Updated Date: 2024/01/01 02:55
Javaのカバレッジ
JavaEEでつくったWARやらEARファイルのアプリについて、静的なテスティングではなく、 人的なブラウザ操作によるデバッグ実行・検証時にコードカバレッジ取ってくれる方法ってないかなーとか思い、 ちょっとだけ調べてみた。 とりあえずJavaソースについてはJacocoという ライブラリでなんとかなるっぽいことがわかった。
これ、Eclipseのプラグインでは比較的有名なEclemmaの後続プラグインみたいで、
実際の使い方はMavenやGradleと連携させて使うようだ。
僕の場合、JUnitもTestNGも使わずにやろうと考えていたわけで、そいういうときはJava Agent
機能を使ってVM引数からJacocoを起動させてやることにした。
確かに、Javaのカバレッジがとれた。 出力レポートが「exec」とかいうファイル拡張子になっていて、そのままでは閲覧可能な帳票ではないため、 ちょっと使いづらい。 その辺本当はMavenやantで自動レポート化(HTMLやらXMLファイルに置換してくれる)するっぽい。 自分にビルドツールのスキルがあんまりないので、このへんも調査したいところ。
JavaScriptのカバレッジ
次にWARやEAR内で実装されているJavaScriptのカバレッジが取れないかと調査した。
結果から言えば、さすがに難しかった。
というのも、SeamやStrutsなどで作られたWAR・EARなどに固められたWebシステムでは、
Java Agentを使う方法以外で、人的操作しながらのカバレッジ取得は難しいみたい。
一応JSCoverは使ってみたけど、 先述どおりWAR・EARの内部的に実行される画面生成に対してカバレッジを取る術がないため、 どうしようもなかった。
JavaScriptのカバレッジ取得については、 恐らく企業内で使われるJava用の独自ライブラリとかあると思うけど、 世間一般には出回っていないのが現状のよう。むっちゃ欲しい。
とはいえ、JSもテストコード書けばいいわけなので、 人的作業でC0、C1網羅を目指すよりはそっちの手法を用いて自動化・効率化を図っていくほうが よっぽど健全なのかもしれない。