0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

JUnit5のテストレポート

0
Posted at

🕒 学習時間

21:00~21:30

🧑‍💻 実施した学習内容

1. 疑問点

JUnit5のテストレポートの作成方法

2. 技術の概要

◾️何をするものか
JUnit5のテストレポートとは、テスト実行結果(成功・失敗・スキップ・実行時間など)を可視化・記録する仕組み。

◾️背景・目的(なぜ必要か)

  • テストは「書くだけ」では意味がない
  • 実行結果を人間が理解できる形で残す必要がある
  • CI/CD(継続的インテグレーション)では品質の可視化が必須
    → 「どのテストが落ちたか」「なぜ落ちたか」を即座に把握するため

3. 内容

JUnit5単体では「簡易的なレポート」しか出ないため、実務では以下の3層で扱う

① コンソールレポート

  • 実行時に標準出力に表示
    例:
    Tests run: 10, Failures: 1, Skipped: 0

② XMLレポート

  • CIツール(Jenkinsなど)が読み取るための形式
  • Maven/Gradleで自動生成される

③ HTMLレポート(実務で最重要)

  • 人間が見るためのUI付きレポート
  • 代表例:
    • Surefire Report
    • Allure Report

■ Mavenの場合の出力先
target/surefire-reports/

■ Gradleの場合
build/reports/tests/test/index.html
→右クリック→開く→ブラウザ→ビルドインプレビュー


■ レポートに含まれる情報

  • テストクラス名
  • テストメソッド名
  • 実行結果(SUCCESS / FAILED / SKIPPED)
  • 実行時間(ms単位)
  • スタックトレース
  • 入力パラメータ(ParameterizedTest)

4. 用語定義

  • テストレポート: テスト結果の記録
  • CI: 継続的インテグレーション(自動ビルド・テスト)
  • スタックトレース: エラー発生箇所の履歴
  • Surefire: Mavenのテスト実行プラグイン

5. 解決する課題・メリット

  • 不具合の早期発見
  • 回帰テストの自動化
  • 品質の可視化
  • チーム内共有が容易
  • CI/CDと連携可能

6. 使用する注意事項・デメリット

  • JUnit単体では見づらい(HTML必須)
  • ログが多すぎると逆に読みにくい
  • テスト名が適当だと意味不明になる
  • flaky test(不安定テスト)が混じると信頼性低下

7. 類似技術との比較

技術 特徴 用途 可視化
JUnit5標準 シンプル 開発時
Surefire Maven標準 CI連携
Allure 高機能UI 本格運用
JaCoCo カバレッジ測定 品質分析

8. 根拠の掲示

◾️[公式ドキュメント]
https://junit.org/junit5/docs/current/user-guide/

◾️[参考にした記事]
https://maven.apache.org/surefire/maven-surefire-plugin/

9. 次やること

  • Allureレポートを導入して可視化強化
  • CI(Jenkins/GitHub Actions)と連携
  • カバレッジ(JaCoCo)を追加
  • テスト命名規則を統一
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?