バイトコードに関するJaCoCoの結果を確認する方法はないので、実際のバイトコード命令がまだカバーされていないものがわかるようにしてください。デフォルトのレポートは、9つのブランチのうちの1つが欠けているとしか書いていないので、やや役に立たない。JaCoCoの結果bytecode
答えて
JaCoCoは、カバレッジをソースラインにマッピングします。あなたのコードが非常に複雑で、行ごとにたくさんのブランチがある場合は(1ライナーの場合は '?'演算子の過度使用)、それでは不十分かもしれません。
実際にバイトコードカバレッジが必要な場合は、何らかの形でソースを前処理したいことがあります。私の頭に浮かんだ最初のアイデアは、 "javapでJavaを分解してから再アセンブル"でしたが、few years ago it wasn't possibleと "Javaアセンブラ"のための迅速なグーグルでは今や貴重な結果は得られませんでした。
"行"がテストで覆われていない場合は、そのコードを書き直す必要がありますか?
私は 'while(conditionA && conditionB && conditionC)'があまりにも複雑なコードだとは思わない。しかし、「6つの支店のうち1つが欠落している」という情報は単に不十分であるだけです。 – Vampire
さて、あなたはそのような状況でデッドコードがあるかもしれませんか?以前より強いチェック?例:while(it.hasNext()&& it!= null){...} FindbugsとSonarはそれらを見つけることができます。 – okutane
いいえ、私はしていませんでした。私はすでに不足しているコードパスを発見し、カバレッジを100%ブランチカバレッジに増やすことができました。しかし、ロギングを導入して正しく解釈するのは面倒です。私がバイトコードで見ることができればはるかに簡単です。カバレッジのラインへのマッピングは、 'exec'ファイルの解析中ではなく、記録時にすでに行われていますか?なぜなら、情報が 'exec'ファイルにあると、あるツールはそれをレポートに変換できるはずだからです。 – Vampire
- 1. 結果=結果+ [i]?
- 2. Jacoco - アンドロイド
- 3. Jacocoコードカバレッジ
- 4. bytecodeによるPythonの最適化
- 5. Javaの最適化:bytecode-only対JIT
- 6. 先頭の結果+残りの結果%
- 7. スパークランダムフォレストの特徴理解結果結果
- 8. フィルタ結果リストビュー内の検索結果
- 9. のNetBeans、JacocoとOptional.orElseThrow()
- 10. switch文のJacocoカバレッジ
- 11. jacoco coverage per test
- 12. jacoco with Gradle
- 13. Arquillian + jacoco ITカバレッジ
- 14. Ant&JUnit&Jacocoカバレッジエラー
- 15. JacocoはCuke4Duke
- 16. Arquillian Jacoco Extension + Jacoco Agentが多くの例外を投げる
- 17. ByteCode命令:わかりましたか?
- 18. ByteCodeをネイティブコードに変換する方法
- 19. Lucene結果とEntity Frameworkの結果の結合?
- 20. jQueryのモバイルナビゲーションバー結合結果
- 21. グループ連結結果のカットオフ
- 22. 列の連結結果?
- 23. Solr q結果とデータベースSQL結果
- 24. フィルタ結果NULLカラムin MySQL結果
- 25. 結果のリスト
- 26. [結果のデータベース]
- 27. のXPath結果
- 28. jsの結果
- 29. Windows.Web.Http.HttpClient.ReadAsStringAsync()の結果
- 30. のIQueryable結果
しかし、jacocoは詳細なHTMLレポートを提供します。あなたが言及しているのは、クラス名をクリックしたサマリーレポートです。実際のソースHTMLには、まだカバーされていないコード行が強調表示されます。 –
@HimanshuBhardwajいいえ、私はしません。私は詳細レポートについて話します。しかし、もしあなたが3つの条件をチェックし、詳細レポートが「1 of 6」ブランチを見逃しているとすれば、それは決して助けにならない。注釈付きのバイトコードが見えるでしょう。 – Vampire
実際に望むのは、1つ以上の条件文を含む行の個々の実行可能セグメントのカバレッジを表示することです。 JaCoCoのようなツールはこの機能を持たず、おそらく(計画されたロードマップに基づいて)決して使用されません。しかし、JMockitカバレッジツールは、個々のセグメントカバレッジを表示します(ただし、すべてのケースで完璧ではありません)。 –