Skip to content

Commit 3b82d78

Browse files
committed
fix: reject multiple test lanes
1 parent 59b418b commit 3b82d78

1 file changed

Lines changed: 19 additions & 3 deletions

File tree

app/build.gradle.kts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,17 @@ fun androidTestTaskName(annotationName: String): String {
6969
return "$androidTestTaskPrefix$annotationName$androidTestTaskSuffix"
7070
}
7171

72+
val requestedAndroidTestAnnotationTaskNames = requestedTaskNames.filter { taskName ->
73+
androidTestAnnotationNames.any { androidTestTaskName(it) == taskName }
74+
}
75+
require(requestedAndroidTestAnnotationTaskNames.size <= 1) {
76+
"Run only one generated Android test lane per Gradle invocation. Requested lanes: " +
77+
requestedAndroidTestAnnotationTaskNames.joinToString(", ")
78+
}
79+
val requestedAndroidTestAnnotationTask = requestedAndroidTestAnnotationTaskNames.singleOrNull()
80+
val requestedAndroidTestAnnotationTaskName = requestedAndroidTestAnnotationTask?.let { taskName ->
81+
androidTestAnnotationNames.first { androidTestTaskName(it) == taskName }
82+
}
7283
val requestedAndroidTestAnnotation = providers.gradleProperty("bitkitAndroidTestAnnotation")
7384
.orNull
7485
?.trim()
@@ -82,10 +93,15 @@ val requestedAndroidTestAnnotation = providers.gradleProperty("bitkitAndroidTest
8293
androidTestAnnotationNames.joinToString(", ")
8394
}
8495
}
85-
val bitkitAndroidTestAnnotationName = requestedAndroidTestAnnotation
86-
?: requestedTaskNames.firstNotNullOfOrNull { taskName ->
87-
androidTestAnnotationNames.firstOrNull { androidTestTaskName(it) == taskName }
96+
requestedAndroidTestAnnotationTaskName?.let { annotationName ->
97+
requestedAndroidTestAnnotation?.let {
98+
require(it == annotationName) {
99+
"Do not combine bitkitAndroidTestAnnotation '$it' with generated lane '$annotationName'."
100+
}
88101
}
102+
}
103+
val bitkitAndroidTestAnnotationName = requestedAndroidTestAnnotation
104+
?: requestedAndroidTestAnnotationTaskName
89105
val bitkitAndroidTestAnnotation = bitkitAndroidTestAnnotationName?.let {
90106
"$androidTestAnnotationPackage.$it"
91107
}

0 commit comments

Comments
 (0)