2017-10-26 12 views
1

JUnitテストケースのステートメントカバレッジを取得するJavaプログラムを作成しますか?例えば自動テストのための計測

public Integer addIfXGreaterThanY(int x, int y){ 
    Integer z = null; 

    if (x > y) { 
     z = x + y; 
    } 
    else { 
     z = x - y; 
    } 

    return z; 
} 

出力:私はあなたがcode coverageと呼ばれたいと思う何

Test case 1 inputs: 10, 15 
output(line numbers covered): 1, 2, 5, 6 
and another call will produce: 
Test Case 2 inputs: 15, 10 
output(line numbers covered): 1, 2, 3, 6 
+1

コードはJavaと似ていませんが、タグはJavaとJUnitです。あなたのタグは正しいですか? – Freiheit

+0

これは単なる擬似コードです。はい、タグは正しいです。 – Moni

答えて

2

Emmaは、JUnitコードカバレッジの一般的なツールの1つです。 this questionの回答には、他にもいくつかのオプションがあります。

+0

ありがとうございました。自動化されたツールを使用する代わりに、Javaプログラムを記述してステートメントのカバレッジを見つけることは可能ですか? Instrumentationクラスを代わりに使用できますか? – Moni

+0

@モニ1つだけを使用するのではなく、コードカバレッジツールを書く*ことを明確にするために質問を編集する必要があります。 – Freiheit

+0

必要に応じて質問を編集しました。ありがとうございました – Moni

2

あなたはコードカバレッジレポートツールを探しているようですね。これらのライブラリは、テストケース(通常はjunitが含まれています)によってカバーされ、欠落したコードの行と分岐を提供します。 Jacocoやcoberturaのようなツールは、通常、テストであなたのメソッドでカバーされている行と枝を提供します。 java code coverage toolsのいくつかの例があります。個人的には、私は前にjunitでjacocoを使ってきました。

おそらく、既存のコードカバレッジツールのいくつかのcomparisonが必要ですか?

+0

詳細な情報をありがとうございました。私は実際にそのようなツールを構築しようとしています。 junitテストケースのステートメントカバレッジを見つけるのに役立つ、「Instrumentation」のようなjavaには事前定義されたクラスがありますか? – Moni

+0

個人的にはレポート作成ツールの作成には携わっていませんが、実際にツールが実際にどのように機能し、どのような理論に基づいていますか? jacocoに関する関連質問:https://stackoverflow.com/questions/3051563/how-do-code-coverage-tools-workあなたの質問が存在しない場合は、別の質問を追加したり、質問の枠を変更したりしたいでしょうか? –

関連する問題