Kotest Allure拡張
Allureは、詳細なインタラクティブテストレポートのために設計されたオープンソースフレームワークである。レポートファイルを生成し、それを使用して最終HTMLレポートを作成する方式で動作する。従来のJUnitレポートに似ているが、より高度で詳細なものと考えられる。
2つのステップがある。最初のステップはテスト実行時に生データを生成することで、2つ目のステップはそのデータをインタラクティブHTMLレポートへコンパイルすることである。
このモジュールはKotestと一緒にAllureを使用するための統合機能を提供する。開始するには、Gradleビルドファイルに以下の依存関係を追加する。
io.kotest.extensions:kotest-extensions-allure:${kotest.version}
Note: グループIDは基本Kotest依存関係(
io.kotest)とは異なるID(io.kotest.extensions)である。
データ収集
Allureにはほとんどのテストフレームワーク向けのデータ収集器があり、このモジュールはKotest向けの統合機能を提供する。モジュールがビルドに追加されたら、プロジェクト構成を使用してグローバルにAllureTestReporterクラスを接続する。
class MyConfig : AbstractProjectConfig {
override fun listeners() = listOf(AllureTestReporter())
}
これでテストが実行されるたびに、KotestはテストデータをAllure JSON形式で書き出す。
Gradleプラグイン
テストが完了したので、最終レポートへコンパイルできる。
この作業はAllureバイナリを使って手動で行うことも、Allure Gradleプラグインを使用することもできる。Gradleプラグインを使用するには、まずビルドのpluginsブロックにプラグインを追加する。
plugins {
...
id("io.qameta.allure") version "2.8.1"
}
次に、バージョンを設定し自動構成を無効化するため、Allure構成セクションを追加する。AllureはJUnitだけを自動構成でき、Kotestはこの作業を自身で処理するためである。
allure {
autoconfigure = false
version = "2.13.1"
}
最後にGradleタスクallureReportを実行すると、./build/reports/allure-reportにレポートが生成され、その中にレポートのindex.htmlエントリポイントを見つけられる。
ビルドディレクトリ設定
Gradleプラグインを使用しない場合、テスト構成でallure.results.directoryシステムプロパティを設定し、ビルドディレクトリがどこにあるかを知らせる必要がある。Gradleプラグインを使用する場合、Gradleプラグインがこの作業を自動で行うため、このステップはスキップできる。
例:
tasks.named<Test>("test") { // or "jvmTest" etc
useJUnitPlatform()
systemProperty("allure.results.directory", project.buildDir.toString() + "/allure-results")
}
最終レポート
すべてが正常に完了すると、テスト実行およびレポート生成後に次のような内容が表示される。
