LoginSignup
3
2

More than 5 years have passed since last update.

レガシーなTomcatプロジェクトを外部のGradleプロジェクトから参照してテスト及びレポーティング自動化

Posted at

レガシーなTomcatプロジェクトを外部のGradleプロジェクトから参照してテスト及びレポーティング自動化

Overview

システム開発に携わっていると、Java+ApacheTomcat+EclipseのTomcatプロジェクトで構築されたWebアプリケーションを見かけることがよくあります。
そういったシステムの改修案件などがあった場合でも、やはりテストコードは書きたいもの。
テストコードを書いたら、Jenkinsさんとかから実行して、テスト結果などをレポーティングしたい。

そんな希望を実現するために試行錯誤した結果、こういう形式はどーかなーとたどり着いたので公開します。
ソース一式はGitHubで管理しているので、そちらをご利用下さい。
https://github.com/Yu-Yamaguchi/GradleBuildForExtarnalTomcatProjectSample

サンプルプロジェクトの構成

キャプチャ.PNG

  • TomcatProject
    • 既存のTomcatプロジェクト
    • Eclipse上の認識がTomcatプロジェクトとなってしまっているため、MavenプロジェクトやGradleプロジェクトとして認識させることができない制約がある。(とします)
  • TomcatProjectGradle
    • Gradleプロジェクトとして認識されるプロジェクト
    • TomcatProjectにあるテストコードを実行し、レポート出力する定義などをまとめているプロジェクト
    • このプロジェクトからTomcatProjectをフラットタイプのマルチプロジェクトとして認識させている

反省点

TomcatProject内部にテストコードを書かずに、TomcatProjectGradle側にテストコードを記述することができたかもしれない。(今回のケースでは、テストコードをTomcatProject内に作成することが制約上OKだったので上記構成となっている。)

やってること

  • 外部に設置されたプロジェクトに対するBuild
  • JUnitの結果レポート出力
  • FindBugsのレポート出力(HTML対応)
  • jacocoによるカバレッジレポート出力(HTML対応)

使い方

コマンドプロンプトからカレントディレクトリをTomcatProjectGradleに変更して実行してください。

CI用に全てのタスクを適切な順序で実行する

gradlew clean ci
このタスクでは、以下のタスクが順番に全て実行されます。

  1. clean … 全てのタスク実行前にクリーンする。
  2. findbugs … findbugsはcheckタスクの依存関係に標準でセットされているため、check実行時に、先行して実行される。
  3. testAll … check.dependsOn += testAllで依存関係をセットしているため、check実行時に、先行して実行される。
  4. check … checkstyleの実行
  5. checkstyleReport … check実行結果のxmlからHTMLのレポートを出力
  6. jacoco … jacocoによるコードカバレッジレポートをHTML形式で出力

個別にタスクを実行したい場合

  • 指定したTestSuiteのJUnitを実行する。

    • gradlew testAllTests
  • FindBugsを実行する。

    • gradlew findbugsTest
  • Checkstyleを実行する→実行後にCheckstyleのレポートを出力する。

    • gradlew check
    • gradlew checkstyleReport
  • jacocoによるカバレッジレポートを出力する。

    • gradlew jacoco
3
2
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
3
2