2012-02-24 10 views
1

無視されたすべてのジュニットを見つけることができるプログラムはありますか?私が意味する。これにより 無視されたジュニットを見つけるプログラム

は、私はすべてが無視されます ignore_testFoo()または xtestBar()または xxtestBar1()のようなメソッド名で@ignoreやテストを使用してユニットテストを、見ていると、彼らは時々見つけることは非常に困難です。 私はそのような場合にgrepできますが、これらの状況を自動的に見つけるアプリケーションがあるかどうかは疑問でした。

私は、どのメソッドが実行されていたか、実行されていなかったか、そしてその悪いユニットテストを選別するために、ジュニットのカバレッジを取得するためにcoberturaを使用しようとしました。

何かをハッキングすることなくこの情報を取得するプログラムや別の方法があるのか​​どうか疑問に思っていました。

答えて

3

ここで静的解析ツールが役立ちます。 Checkstyleはそれらの中から適切な選択肢であり、長いリストmodulesを持っています。最悪の場合、必要なコーディング規則を検証するためのモジュールを簡単に作成できます。

モジュールを見つけたり作成したりして、不適合コードを見つけることができます。

編集 PMDこのタスクを処理するための優れた選択肢になりそうです。実際にはset of JUnit rulesが既に組み込まれており、ルールを組み合わせたり、新しいルールを作成したりするのは非常に簡単です。

+0

最悪の場合私はこのPMDルールを変更するだけです:http://pmd.sourceforge.net/rules/java/unusedcode.html#UnusedPrivateMethod publicメソッドも受け入れ、@ Ignoreアノテーションを検索します。 – Steve

+0

このリンクを投稿していただきありがとうございます。以前はPMDについて聞いたことがありませんでした。興味深いことに、JUnitにはあらかじめ書き込まれたルールがあります(http://pmd.sourceforge.net/rules/java/junit.html)。 – Perception

+0

これらのJUnitルールの大部分は、JUnit 4ではなくJUnit 3に適用されることに注意してください。 –

1

Javaテストファイルでgrepによってjunit3を使用して無視されたテストを検出するのは簡単です。テストと括弧に一致するすべての行を検索しますが、テストでは開始しないメソッド名を使用します。 junit4については

、あなたは *無視のテストをプリントアウトし、デフォルトの1を拡張することによって、独自のテストランナーを実装することができ *無視これらmarkedasをプリントアウトし、INTROSPECTによって宣言されたすべてのメソッドを取得し、テストクラスをロードする小さなアプリケーションを構築します。

これを実行するツールがあるかもしれませんが、実際にはいくつかのランナーが既に行っているかもしれませんが、実際に必要な場合は、実際にはそれらのツールをゼロから作るのに数時間かかる場合があります。

関連する問題