buildSrc/src/main/kotlin/AndroidTests.kt
changeset 46 3eec74c864bf
parent 37 8ec7aee97eb6
child 55 1e50eb12be86
equal deleted inserted replaced
45:e8e44d416387 46:3eec74c864bf
    29 import org.gradle.api.artifacts.Dependency
    29 import org.gradle.api.artifacts.Dependency
    30 import org.gradle.api.artifacts.DependencyConstraint
    30 import org.gradle.api.artifacts.DependencyConstraint
    31 import org.gradle.api.artifacts.ExternalModuleDependency
    31 import org.gradle.api.artifacts.ExternalModuleDependency
    32 import org.gradle.api.artifacts.dsl.DependencyConstraintHandler
    32 import org.gradle.api.artifacts.dsl.DependencyConstraintHandler
    33 import org.gradle.api.artifacts.dsl.DependencyHandler
    33 import org.gradle.api.artifacts.dsl.DependencyHandler
    34 import org.gradle.kotlin.dsl.closureOf
    34 import org.gradle.kotlin.dsl.*
    35 import org.gradle.kotlin.dsl.configure
       
    36 import org.gradle.kotlin.dsl.dependencies
       
    37 import org.gradle.kotlin.dsl.kotlin
       
    38 
    35 
    39 const val espressoVersion = "3.5.0-alpha07" // alpha for this bug https://github.com/robolectric/robolectric/issues/6593
    36 const val espressoVersion = "3.5.1"
    40 const val androidxTestRunnerVersion = "1.4.0"
    37 const val androidxTestRunnerVersion = "1.5.2"
    41 const val androidxTestCoreVersion = "1.4.0"
    38 const val androidxTestCoreVersion = "1.5.0"
    42 const val robolectricVersion = "4.8.2"
    39 const val robolectricVersion = "4.10.2"
    43 
    40 
    44 private typealias BaseExtension = CommonExtension<*, *, DefaultConfig, *>
    41 private typealias BaseExtension = CommonExtension<*, *, DefaultConfig, *>
    45 
    42 
    46 /*
    43 /*
    47  * Configuration for espresso and robolectric usage in an Android project
    44  * Configuration for espresso and robolectric usage in an Android project
    69 
    66 
    70 
    67 
    71     dependencies {
    68     dependencies {
    72         dualTestImplementation(kotlin("test-junit"))
    69         dualTestImplementation(kotlin("test-junit"))
    73 
    70 
    74         androidTestUtil("androidx.test:orchestrator:$androidxTestRunnerVersion")
    71         androidTestUtil("androidx.test:orchestrator:1.4.2")
    75         androidTestImplementation("androidx.test:runner:$androidxTestRunnerVersion")
    72         androidTestImplementation("androidx.test:runner:$androidxTestRunnerVersion")
    76         dualTestImplementation("androidx.test.ext:junit-ktx:1.1.1")
    73         dualTestImplementation("androidx.test.ext:junit-ktx:1.1.1")
    77 
    74 
    78         dualTestImplementation("androidx.test:core-ktx:$androidxTestCoreVersion")
    75         dualTestImplementation("androidx.test:core-ktx:$androidxTestCoreVersion")
    79         dualTestImplementation("androidx.test:rules:$androidxTestRunnerVersion")
    76         dualTestImplementation("androidx.test:rules:1.5.0")
    80         // fragment testing is usually declared on debugImplementation configuration and need these dependencies
    77         // fragment testing is usually declared on debugImplementation configuration and need these dependencies
    81         constraints {
    78         constraints {
    82             debugImplementation("androidx.test:core:$androidxTestCoreVersion")
    79             debugImplementation("androidx.test:core:$androidxTestCoreVersion")
    83             debugImplementation("androidx.test:monitor:$androidxTestRunnerVersion")
    80             debugImplementation("androidx.test:monitor:$androidxTestRunnerVersion")
    84         }
    81         }
    85 
    82 
    86         dualTestImplementation("androidx.test.espresso:espresso-core:$espressoVersion")
    83         dualTestImplementation("androidx.test.espresso:espresso-core:$espressoVersion")
    87         dualTestImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion")
    84         dualTestImplementation("androidx.test.espresso:espresso-contrib:$espressoVersion") {
       
    85             exclude("com.google.protobuf", "protobuf-lite")
       
    86         }
    88         dualTestImplementation("androidx.test.espresso:espresso-intents:$espressoVersion")
    87         dualTestImplementation("androidx.test.espresso:espresso-intents:$espressoVersion")
    89 
    88 
    90         // assertions
    89         // assertions
    91         dualTestImplementation("com.google.truth:truth:1.0")
    90         dualTestImplementation("com.google.truth:truth:1.0")
    92         dualTestImplementation("androidx.test.ext:truth:1.3.0-alpha01")
    91         dualTestImplementation("androidx.test.ext:truth:1.3.0-alpha01")
    93 
    92 
    94         // mock
    93         // mock
    95         testImplementation("io.mockk:mockk:1.13.2")
    94         testImplementation("io.mockk:mockk:1.13.5")
    96         androidTestImplementation("io.mockk:mockk-android:1.13.2")
    95         androidTestImplementation("io.mockk:mockk-android:1.13.5")
    97         testImplementation("org.robolectric:robolectric:$robolectricVersion")
    96         testImplementation("org.robolectric:robolectric:$robolectricVersion")
    98 
    97 
    99         constraints {
    98         constraints {
   100             dualTestImplementation(kotlin("reflect")) {
    99             dualTestImplementation(kotlin("reflect")) {
   101                 because("Use the kotlin version that we use")
   100                 because("Use the kotlin version that we use")