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") |