Skip to content

Commit

Permalink
Fix for missing /kotlin folder when running on Android projects (#4554)
Browse files Browse the repository at this point in the history
  • Loading branch information
cortinico committed Feb 5, 2022
1 parent 56f34c4 commit 557c7d3
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 3 deletions.
Expand Up @@ -112,7 +112,7 @@ internal fun Project.registerAndroidDetektTask(
extraInputSource: FileCollection? = null
): TaskProvider<Detekt> =
registerDetektTask(taskName, extension) {
setSource(variant.sourceSets.map { it.javaDirectories })
setSource(variant.sourceSets.map { it.javaDirectories + it.kotlinDirectories })
extraInputSource?.let { source(it) }
classpath.setFrom(variant.getCompileClasspath(null).filter { it.exists() } + bootClasspath)
// If a baseline file is configured as input file, it must exist to be configured, otherwise the task fails.
Expand All @@ -132,7 +132,7 @@ internal fun Project.registerAndroidCreateBaselineTask(
extraInputSource: FileCollection? = null
): TaskProvider<DetektCreateBaselineTask> =
registerCreateBaselineTask(taskName, extension) {
setSource(variant.sourceSets.map { it.javaDirectories })
setSource(variant.sourceSets.map { it.javaDirectories + it.kotlinDirectories })
extraInputSource?.let { source(it) }
classpath.setFrom(variant.getCompileClasspath(null).filter { it.exists() } + bootClasspath)
val variantBaselineFile = extension.baseline?.addVariantName(variant.name)
Expand Down
Expand Up @@ -25,7 +25,16 @@ object DetektAndroidSpec : Spek({
$ANDROID_BLOCK
$DETEKT_REPORTS_BLOCK
""".trimIndent(),
srcDirs = listOf("src/main/java", "src/debug/java", "src/test/java", "src/androidTest/java"),
srcDirs = listOf(
"src/main/java",
"src/debug/java",
"src/test/java",
"src/androidTest/java",
"src/main/kotlin",
"src/debug/kotlin",
"src/test/kotlin",
"src/androidTest/kotlin",
),
baselineFiles = listOf(
"detekt-baseline.xml",
"detekt-baseline-release.xml",
Expand All @@ -43,6 +52,10 @@ object DetektAndroidSpec : Spek({
gradleRunner.runTasksAndCheckResult(":app:detektMain") { buildResult ->
assertThat(buildResult.output).containsPattern("""--baseline \S*[/\\]detekt-baseline-release.xml """)
assertThat(buildResult.output).containsPattern("""--baseline \S*[/\\]detekt-baseline-debug.xml """)
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]main[/\\]java""")
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]debug[/\\]java""")
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]main[/\\]kotlin""")
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]debug[/\\]kotlin""")
assertThat(buildResult.output).contains("--report xml:")
assertThat(buildResult.output).contains("--report sarif:")
assertThat(buildResult.output).doesNotContain("--report txt:")
Expand All @@ -60,6 +73,10 @@ object DetektAndroidSpec : Spek({
assertThat(buildResult.output).containsPattern("""--baseline \S*[/\\]detekt-baseline-releaseUnitTest.xml """)
assertThat(buildResult.output).containsPattern("""--baseline \S*[/\\]detekt-baseline-debugUnitTest.xml """)
assertThat(buildResult.output).containsPattern("""--baseline \S*[/\\]detekt-baseline-debugAndroidTest.xml """)
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]test[/\\]java""")
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]androidTest[/\\]java""")
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]test[/\\]kotlin""")
assertThat(buildResult.output).containsPattern("""--input \S*[/\\]app[/\\]src[/\\]androidTest[/\\]kotlin""")
assertThat(buildResult.output).contains("--report xml:")
assertThat(buildResult.output).contains("--report sarif:")
assertThat(buildResult.output).doesNotContain("--report txt:")
Expand Down

0 comments on commit 557c7d3

Please sign in to comment.