build.gradleにtest結果をブラウザで表示させるタスクの追加

デスクトップでプログラミングするモチベーションが高まったので、javaとかいろいろそろえてみた。

プロジェクトの環境は、openJDK 14 と gradle 6.3。

> gradle test

でテストの実行、カバレッジ表示用のhtmlが表示される。

だから、これをコマンドラインから表示させたかった。

なので、

① 新しいタスクの追加 ② 既存タスク test の実行(依存) 以下、実行フェーズで ③ テストカバレッジHTMLのパスの取得 ④ パスが存在したらそのファイルをブラウザで開く

っていう流れで新しいタスクを追加した。

task openTest {
    dependsOn "test"
    doFirst {
        def path = Path.of(System.getProperty("user.dir") + "\\build\\reports\\tests\\test\\index.html")
        if(Files.exists(path)) {
            Desktop.getDesktop().browse(path.toUri())
        }
    }
}

やっつけで書いた....

doFirst 外で書くと全部実行されるというワナとかdependsOnは実行フェーズ内で書けないとか知見が多かった。

これずっとnvimで書いてたのでnvim用のプラギン探さないとな。てか既にブラウザにカバレッジ出すタスクありそう。