19 * You should have received a copy of the GNU General Public License |
19 * You should have received a copy of the GNU General Public License |
20 * along with Geekdroid. If not, see <http://www.gnu.org/licenses/>. |
20 * along with Geekdroid. If not, see <http://www.gnu.org/licenses/>. |
21 */ |
21 */ |
22 package com.geekorum.build |
22 package com.geekorum.build |
23 |
23 |
|
24 import com.android.build.api.dsl.CommonExtension |
|
25 import com.android.build.api.dsl.DefaultConfig |
24 import com.android.build.gradle.BaseExtension |
26 import com.android.build.gradle.BaseExtension |
25 import com.android.build.gradle.internal.dsl.TestOptions |
27 import com.android.build.gradle.internal.dsl.TestOptions |
26 import org.gradle.api.Project |
28 import org.gradle.api.Project |
27 import org.gradle.api.artifacts.Dependency |
29 import org.gradle.api.artifacts.Dependency |
28 import org.gradle.api.artifacts.DependencyConstraint |
30 import org.gradle.api.artifacts.DependencyConstraint |
32 import org.gradle.kotlin.dsl.closureOf |
34 import org.gradle.kotlin.dsl.closureOf |
33 import org.gradle.kotlin.dsl.configure |
35 import org.gradle.kotlin.dsl.configure |
34 import org.gradle.kotlin.dsl.dependencies |
36 import org.gradle.kotlin.dsl.dependencies |
35 import org.gradle.kotlin.dsl.kotlin |
37 import org.gradle.kotlin.dsl.kotlin |
36 |
38 |
37 const val espressoVersion = "3.2.0" |
39 const val espressoVersion = "3.5.0-alpha07" // alpha for this bug https://github.com/robolectric/robolectric/issues/6593 |
38 const val androidxTestRunnerVersion = "1.3.0-alpha05" |
40 const val androidxTestRunnerVersion = "1.4.0" |
39 const val androidxTestCoreVersion = "1.3.0-alpha05" |
41 const val androidxTestCoreVersion = "1.4.0" |
40 const val robolectricVersion = "4.6.1" |
42 const val robolectricVersion = "4.8.2" |
41 |
43 |
|
44 private typealias BaseExtension = CommonExtension<*, *, DefaultConfig, *> |
42 |
45 |
43 /* |
46 /* |
44 * Configuration for espresso and robolectric usage in an Android project |
47 * Configuration for espresso and robolectric usage in an Android project |
45 */ |
48 */ |
|
49 @Suppress("UnstableApiUsage") |
46 internal fun Project.configureTests() { |
50 internal fun Project.configureTests() { |
47 extensions.configure<BaseExtension> { |
51 extensions.configure<BaseExtension>("android") { |
48 defaultConfig { |
52 defaultConfig { |
49 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" |
53 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" |
50 testInstrumentationRunnerArguments += mapOf( |
54 testInstrumentationRunnerArguments += mapOf( |
51 "clearPackageData" to "true", |
55 "clearPackageData" to "true", |
52 "disableAnalytics" to "true" |
56 "disableAnalytics" to "true" |
86 // assertions |
90 // assertions |
87 dualTestImplementation("com.google.truth:truth:1.0") |
91 dualTestImplementation("com.google.truth:truth:1.0") |
88 dualTestImplementation("androidx.test.ext:truth:1.3.0-alpha01") |
92 dualTestImplementation("androidx.test.ext:truth:1.3.0-alpha01") |
89 |
93 |
90 // mock |
94 // mock |
91 testImplementation("io.mockk:mockk:1.12.0") |
95 testImplementation("io.mockk:mockk:1.13.2") |
92 androidTestImplementation("io.mockk:mockk-android:1.12.0") |
96 androidTestImplementation("io.mockk:mockk-android:1.13.2") |
93 testImplementation("org.robolectric:robolectric:$robolectricVersion") |
97 testImplementation("org.robolectric:robolectric:$robolectricVersion") |
94 |
98 |
95 constraints { |
99 constraints { |
96 dualTestImplementation(kotlin("reflect")) { |
100 dualTestImplementation(kotlin("reflect")) { |
97 because("Use the kotlin version that we use") |
101 because("Use the kotlin version that we use") |