2

いくつかの異なるチームが積極的に取り組んでいる大規模なコード ベースの単体テストを増やしようとしています。コードの多くは継承されており、最初から単体テストが行​​われていませんでした。さらに、JSP には Java コードの大きなブロックがよく見られます。私は、開発者が Java コードを JSP に入れるのではなく、代わりに Java クラスに入れることを提唱してきましたこれは、単体テストをはるかに容易にするためです (他の理由から、これは理にかなっています)。

単体テストを使用してJava クラスのコードのコード カバレッジ データを取得できますが、JSP に Java コードがどれだけ存在するかを知る方法はありません(既存の単体テストによるコード カバレッジはゼロです)。Intellij の最新バージョンを使用していますが、ソリューションが必ずしもそれによって制約される必要はないと思います。

Java コードの総行数 (JSP にある行を含む) を知りたいので、JSP であるか Java クラスであるかに関係なく、Java コードの包括的なコード カバレッジ数を取得できます。追跡するものがあると、単体テストを広めるのに役立ちます。

JSP または Java クラスに存在するかどうかにかかわらず、Java コードの合計行数を取得する自動化された方法はありますか?

4

1 に答える 1

0

私は自動化された方法を認識していません。自動化された方法があるとしたら驚くでしょう。

  • あなたが述べたように、スクリプトレットは恐ろしい忌まわしいものであるため、スクリプトレットのコードカバレッジをテストするつもりはありません。
  • 最近はスクリプトレットが作成されていないため、これに適合するツール (オープン ソース / 商用) が存在する可能性はほとんどありません。

私が考えることができるいくつかのアプローチ

  • スクリプトレットを削除する HTML パーサーを作成します。<%= //code =>がテキスト形式に変換されるのではないかと思うので、これは難しいかもしれません。これらは有効なタグではありませんが、解析の恩恵を受けることができます。
  • Jasper または同等のフレームワークを使用して JSP をコンパイルし、それらの API メソッドを使用して JSP ページに関するスクリプトレット情報を取得します。(このデータを明らかにできる API メソッド/メンバー変数を探すのは簡単ではないことを告白します。)
  • ファイルをスキャンして文字を検出し、aに到達<%=するまで /n および /r/n 文字が検出されるたびにコード行のカウントを開始する独自のパーサーを作成します。%>

独自のパーサーを作成するのがおそらく最も簡単な方法だと思います。

問題にアプローチする別の方法があるかもしれません。google CodeProなどのツールを使用して、JSP ファイルを監査できます。JSP スクリプトレットを禁止するカスタム ルールを作成してみてください。

于 2012-12-19T21:19:42.727 に答える