@@ -519,7 +519,8 @@ class PluginSpec : Spek({
519519 on("assembling the $buildType task") {
520520 val project = testProjectBuilder.buildAndEvaluate()
521521 val projectConfig = ProjectConfig (project)
522- val task = project.tasks.get<AndroidJUnit5UnitTest >("junitPlatformTest${buildType.capitalize()}")
522+ val task = project.tasks.get<AndroidJUnit5UnitTest >(
523+ "junitPlatformTest${buildType.capitalize()}")
523524 val folders = argument(task, "--scan-class-path")?.split(":") ? : listOf()
524525
525526 val variant = projectConfig.unitTestVariants.find { it.name == buildType }
@@ -556,13 +557,30 @@ class PluginSpec : Spek({
556557 .contains("jacocoTestReport${buildType.capitalize()}")
557558 }
558559
560+ it("includes Main -scoped source dirs for the $buildType build type") {
561+ // Expected items: "src/main/java" & "src/<TypeName>/java"
562+ val sourceDirs = project.tasks.get<AndroidJUnit5JacocoReport >(
563+ "jacocoTestReport${buildType.capitalize()}")
564+ .sourceDirectories
565+ .map { it.absolutePath }
566+
567+ val mainDir = sourceDirs.find { it.endsWith("src/main/java") }
568+ val typeDir = sourceDirs.find { it.endsWith("src/$buildType/java") }
569+ assertAll(
570+ "Mismatch ! Actual dirs: $sourceDirs",
571+ { assertThat(mainDir).withFailMessage("main").isNotNull() },
572+ { assertThat(typeDir).withFailMessage(buildType).isNotNull() }
573+ )
574+ }
575+
559576 it("doesn't include Test -scoped source dirs for the $buildType build type") {
560577 // Expected omissions: "src/test/java" & "src/test<TypeName>/java"
561578 val sourceDirs = project.tasks.get<AndroidJUnit5JacocoReport >(
562579 "jacocoTestReport${buildType.capitalize()}")
563580 .sourceDirectories.asPath
564581
565582 assertAll(
583+ "Mismatch ! Actual dirs: $sourceDirs",
566584 { assertThat(sourceDirs).doesNotContain("src/test/java") },
567585 {
568586 assertThat(sourceDirs).doesNotContain("src/test${buildType.capitalize()}/java")
@@ -706,7 +724,6 @@ class PluginSpec : Spek({
706724 project.android.testOptions.junitPlatform {
707725 jacocoOptions {
708726 excludedClasses.add("Second *.class")
709- excludedSources.add("AnnoyingFile .java")
710727 }
711728 }
712729
@@ -748,42 +765,6 @@ class PluginSpec : Spek({
748765 "FirstFile .class",
749766 "SecondFile .class")
750767 }
751-
752- it("honors the debug source exclusion rules") {
753- // Should be included:
754- // * OkFile.java
755- // Should be excluded:
756- // * AnnoyingFile.java (through rule)
757- // * ReleaseOnlyFile.java (other source set)
758- val fileNames = project.tasks.get<AndroidJUnit5JacocoReport >(
759- "jacocoTestReportDebug")
760- .sourceDirectories.asFileTree.files
761- .map { it.name }
762-
763- assertThat(fileNames)
764- .contains("OkFile .java")
765- .doesNotContain(
766- "AnnoyingFile .java",
767- "ReleaseOnlyFile .java")
768- }
769-
770- it("honors the release source exclusion rules") {
771- // Should be included:
772- // * OkFile.java
773- // * ReleaseOnly.java
774- // Should be excluded:
775- // * AnnoyingFile.java (through rule)
776- val fileNames = project.tasks.get<AndroidJUnit5JacocoReport >(
777- "jacocoTestReportRelease")
778- .sourceDirectories.asFileTree.files
779- .map { it.name }
780-
781- assertThat(fileNames)
782- .contains(
783- "OkFile .java",
784- "ReleaseOnlyFile .java")
785- .doesNotContain("AnnoyingFile .java")
786- }
787768 }
788769
789770 on("replacing class rules") {
0 commit comments