@@ -45,20 +45,22 @@ class IntegrationTest(
45
45
assertThat(result.output).contains(" BUILD SUCCESSFUL" )
46
46
47
47
// Assert whether the combined coverage report is what we expected
48
- result.assertRootCoverageReport()
48
+ result.assertRootCoverageReport(File (projectRoot, " build/reports/jacoco.csv " ) )
49
49
50
50
// Assert whether the per module coverage reports are what we expect
51
51
result.assertAppCoverageReport()
52
52
result.assertAndroidLibraryCoverageReport()
53
+
54
+ assertSourceFilesHaveBeenAddedToReport(File (projectRoot, " build/reports/jacoco" ))
53
55
}
54
56
55
- private fun BuildResult.assertRootCoverageReport () {
57
+ private fun BuildResult.assertRootCoverageReport (file : File ) {
56
58
assertEquals(task(" :rootCoverageReport" )!! .outcome, TaskOutcome .SUCCESS )
57
59
58
60
// Also check if the old task name is still exe
59
61
assertEquals(task(" :rootCodeCoverageReport" )!! .outcome, TaskOutcome .SUCCESS )
60
62
61
- val report = CoverageReport .from(File (projectRoot, " build/reports/jacoco.csv " ) )
63
+ val report = CoverageReport .from(file )
62
64
63
65
report.assertCoverage(" org.neotech.library.android" , " LibraryAndroidJava" )
64
66
report.assertCoverage(" org.neotech.library.android" , " LibraryAndroidKotlin" )
@@ -99,6 +101,18 @@ class IntegrationTest(
99
101
)
100
102
}
101
103
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
+
102
116
companion object {
103
117
104
118
@Suppress(" unused" ) // This method is used by the JVM (Parameterized JUnit Runner)
0 commit comments