bon now

ありのままの現実を書き殴る吐き溜め。底辺SEの備忘録。
Written by bon who just a foolish IT Engineer.

Java EJBアプリのコードカバレッジ

Created Date: 2014/06/06 20:32
Updated Date: 2024/01/01 00:26

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網羅を目指すよりはそっちの手法を用いて自動化・効率化を図っていくほうが よっぽど健全なのかもしれない。

local_offer
folder work