xref: /aosp_15_r20/external/accompanist/testharness/build.gradle.kts (revision fa44fe6ae8e729aa3cfe5c03eedbbf98fb44e2c6)
1 /*
2  * Copyright 2023 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      https://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 @file:Suppress("UnstableApiUsage")
17 
<lambda>null18 plugins {
19     id(libs.plugins.android.library.get().pluginId)
20     id(libs.plugins.android.kotlin.get().pluginId)
21     id(libs.plugins.jetbrains.dokka.get().pluginId)
22     id(libs.plugins.gradle.metalava.get().pluginId)
23     id(libs.plugins.vanniktech.maven.publish.get().pluginId)
24 }
25 
<lambda>null26 kotlin {
27     explicitApi()
28 }
29 
<lambda>null30 android {
31     namespace = "com.google.accompanist.testharness"
32 
33     compileSdk = 34
34 
35     defaultConfig {
36         minSdk = 21
37         // targetSdkVersion has no effect for libraries. This is only used for the test APK
38         targetSdk = 33
39         testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
40     }
41 
42     compileOptions {
43         sourceCompatibility = JavaVersion.VERSION_1_8
44         targetCompatibility = JavaVersion.VERSION_1_8
45     }
46 
47     buildTypes {
48         getByName("debug") {
49             enableUnitTestCoverage = true
50         }
51     }
52 
53     buildFeatures {
54         buildConfig = false
55         compose = true
56     }
57 
58     composeOptions {
59         kotlinCompilerExtensionVersion = libs.versions.composeCompiler.get()
60     }
61 
62     lint {
63         textReport = true
64         textOutput = File("stdout")
65         // We run a full lint analysis as build part in CI, so skip vital checks for assemble tasks
66         checkReleaseBuilds = false
67         disable += setOf("GradleOverrides")
68     }
69 
70     packaging {
71         // Some of the META-INF files conflict with coroutines-test. Exclude them to enable
72         // our test APK to build (has no effect on our AARs)
73         resources {
74             excludes += listOf("/META-INF/AL2.0", "/META-INF/LGPL2.1")
75         }
76     }
77 
78     testOptions {
79         unitTests {
80             isIncludeAndroidResources = true
81         }
82         unitTests.all {
83             it.useJUnit {
84                 excludeCategories("com.google.accompanist.internal.test.IgnoreOnRobolectric")
85             }
86         }
87         animationsDisabled = true
88     }
89 
90     sourceSets {
91         named("test") {
92             java.srcDirs("src/sharedTest/kotlin")
93             res.srcDirs("src/sharedTest/res")
94         }
95         named("androidTest") {
96             java.srcDirs("src/sharedTest/kotlin")
97             res.srcDirs("src/sharedTest/res")
98         }
99     }
100 }
101 
<lambda>null102 metalava {
103     sourcePaths.setFrom("src/main")
104     filename.set("api/current.api")
105     reportLintsAsErrors.set(true)
106 }
107 
<lambda>null108 dependencies {
109     implementation(libs.compose.foundation.foundation)
110     implementation(libs.androidx.core)
111     testImplementation(libs.androidx.core)
112     implementation(libs.kotlin.coroutines.android)
113 
114     // ======================
115     // Test dependencies
116     // ======================
117 
118     androidTestImplementation(project(":internal-testutils"))
119     testImplementation(project(":internal-testutils"))
120 
121     androidTestImplementation(libs.junit)
122     testImplementation(libs.junit)
123 
124     androidTestImplementation(libs.truth)
125     testImplementation(libs.truth)
126 
127     androidTestImplementation(libs.compose.ui.test.junit4)
128     testImplementation(libs.compose.ui.test.junit4)
129 
130     androidTestImplementation(libs.compose.ui.test.manifest)
131     testImplementation(libs.compose.ui.test.manifest)
132 
133     androidTestImplementation(libs.androidx.test.runner)
134     testImplementation(libs.androidx.test.runner)
135 
136     testImplementation(libs.robolectric)
137 }
138