@@ -45,20 +45,22 @@ class IntegrationTest(
4545 assertThat(result.output).contains(" BUILD SUCCESSFUL" )
4646
4747 // Assert whether the combined coverage report is what we expected
48- result.assertRootCoverageReport()
48+ result.assertRootCoverageReport(File (projectRoot, " build/reports/jacoco.csv " ) )
4949
5050 // Assert whether the per module coverage reports are what we expect
5151 result.assertAppCoverageReport()
5252 result.assertAndroidLibraryCoverageReport()
53+
54+ assertSourceFilesHaveBeenAddedToReport(File (projectRoot, " build/reports/jacoco" ))
5355 }
5456
55- private fun BuildResult.assertRootCoverageReport () {
57+ private fun BuildResult.assertRootCoverageReport (file : File ) {
5658 assertEquals(task(" :rootCoverageReport" )!! .outcome, TaskOutcome .SUCCESS )
5759
5860 // Also check if the old task name is still exe
5961 assertEquals(task(" :rootCodeCoverageReport" )!! .outcome, TaskOutcome .SUCCESS )
6062
61- val report = CoverageReport .from(File (projectRoot, " build/reports/jacoco.csv " ) )
63+ val report = CoverageReport .from(file )
6264
6365 report.assertCoverage(" org.neotech.library.android" , " LibraryAndroidJava" )
6466 report.assertCoverage(" org.neotech.library.android" , " LibraryAndroidKotlin" )
@@ -99,6 +101,18 @@ class IntegrationTest(
99101 )
100102 }
101103
104+ private fun assertSourceFilesHaveBeenAddedToReport (htmlReportRoot : File ) {
105+ htmlReportRoot.walkTopDown()
106+ .filter {
107+ it.isFile && it.extension == " html"
108+ }
109+ .forEach { file ->
110+ file.forEachLine {
111+ assertThat(it).doesNotContainMatch(" Source file ".*" was not found during generation of report\\ ." )
112+ }
113+ }
114+ }
115+
102116 companion object {
103117
104118 @Suppress(" unused" ) // This method is used by the JVM (Parameterized JUnit Runner)
0 commit comments