テストをGradleで実行する

テストをGradleで実行することができます。

例1

コンソールでgradlewを使用してテストを実行することができます。

  1. プロジェクトのディレクトリへ移動します。
  2. gradlewを使用してテストを実行します。
wave1008@SNB-M1 ~ % cd Downloads/Practice1
wave1008@SNB-M1 Practice1 % ./gradlew cleanTest test

BUILD SUCCESSFUL in 35s
3 actionable tasks: 2 executed, 1 up-to-date
wave1008@SNB-M1 Practice1 %

例2

スクリプトを作成して実行することができます。

  1. プロジェクトのルートディレクトにruntest.shを作成します。

runtest.sh の内容

./gradlew cleanTest test
  1. runtest.shを実行します。
wave1008@SNB-M1 Practice1 % sh ./runtest.sh         

BUILD SUCCESSFUL in 35s
3 actionable tasks: 2 executed, 1 up-to-date
wave1008@SNB-M1 Practice1 % 

例3

"SR_"のプレフィックを付与して環境変数経由でパラメーターを設定することができます。

  1. runtest.shを以下のように書き換えます。
export SR_os="android"
export SR_profile="Pixel 3a(Android 12)"
export SR_appiumServerUrl="http://127.0.0.1:4720/"
export SR_appiumArgs="--session-override --relaxed-security"
export SR_testResults="$HOME/Downloads/TestResults/Practice1"
export SR_testListDir="$HOME/Downloads/TestResults/Practice1"
./gradlew cleanTest test
  1. runtest.shを実行します。
wave1008@SNB-M1 Practice1 % sh ./runtest.sh 

BUILD SUCCESSFUL in 35s
3 actionable tasks: 2 executed, 1 up-to-date
wave1008@SNB-M1 Practice1 % 

例4

環境変数includeTestsMatchingを使用して実行するテストを指定することができます。

  1. build.gradle.ktstasks.test にフィルター処理を記述します。
tasks.test {
    useJUnitPlatform()
    jvmArgs = listOf(
        "--add-exports", "java.desktop/sun.awt.image=ALL-UNNAMED"
    )

    // Filter test methods
    val envIncludeTestMatching = System.getenv("includeTestsMatching") ?: "*"
    val list = envIncludeTestMatching.split(",").map { it.trim() }
    filter {
        for (item in list) {
            println("includeTestMatching($item)")
            includeTestsMatching(item)
        }
    }
}
  1. カンマ区切りでテストを指定することができます。
export includeTestsMatching="product1.Test1,product1.Test2,product1.Test3"

Link