Skip to content

upgrade to scoverage 1.4 #107

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Nov 19, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ sourceCompatibility = '1.8'
targetCompatibility = '1.8'

dependencies {
compileOnly "org.scoverage:scalac-scoverage-plugin_2.12:1.3.1"
compileOnly "org.scoverage:scalac-scoverage-plugin_2.12:1.4.0"
compile group: 'commons-io', name: 'commons-io', version: '2.6'
testCompile 'junit:junit:4.12'
testCompile 'org.hamcrest:hamcrest-library:1.3'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ private void assertAllReportFilesExist() {

assert211ReportFilesExist();
assert212ReportFilesExist();
assert213ReportFilesExist();
assertAggregationFilesExist();
}

Expand All @@ -56,4 +57,11 @@ private void assert212ReportFilesExist() {
Assert.assertTrue(resolve(reportDir, "index.html").exists());
Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/World212.scala.html").exists());
}

private void assert213ReportFilesExist() {

File reportDir = reportDir(projectDir().toPath().resolve("2_13").toFile());
Assert.assertTrue(resolve(reportDir, "index.html").exists());
Assert.assertTrue(resolve(reportDir, "src/main/scala/org/hello/World213.scala.html").exists());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -225,7 +225,7 @@ public void checkAndAggregateScoverageWithoutCoverageInRoot() throws Exception {
result.assertTaskSucceeded(ScoveragePlugin.getAGGREGATE_NAME());

assertAllReportFilesExist();
assertCoverage(93.33);
assertCoverage(88.24);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ private void configureArguments(String... arguments) {
fullArguments.add("-PscalaVersionBuild=8");
fullArguments.add("-PjunitVersion=5.3.2");
fullArguments.add("-PjunitPlatformVersion=1.3.2");
fullArguments.add("-PscalatestVersion=3.0.5");
fullArguments.add("-PscalatestVersion=3.0.8");
fullArguments.addAll(Arrays.asList(arguments));

runner.withArguments(fullArguments);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
dependencies {
compile group: 'org.scala-lang', name: 'scala-library', version: "2.13.1"
testCompile group: 'org.scalatest', name: "scalatest_2.13", version: scalatestVersion
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package org.hello

class World213 {

def foo(): String = {
val s = "2" + "12"
s
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package org.hello

import org.junit.runner.RunWith
import org.scalatest.FunSuite
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class World212Suite extends FunSuite {

test("foo") {
new World213().foo()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -33,4 +33,6 @@ scoverage {
minimumRate = 0.5
}

project(":2_11").tasks.reportScoverage.mustRunAfter(project(":2_12").tasks.reportScoverage)
project(":2_11").tasks.reportScoverage
.mustRunAfter(project(":2_12").tasks.reportScoverage)
.mustRunAfter(project(":2_13").tasks.reportScoverage)
Original file line number Diff line number Diff line change
@@ -1 +1 @@
include '2_11', '2_12'
include '2_11', '2_12', '2_13'
20 changes: 5 additions & 15 deletions src/main/groovy/org/scoverage/ScoverageAggregate.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
// don't use scala.collection.JavaConverters as it breaks backward compatibility with scala 2.11
import scala.collection.JavaConversions
import scoverage.IOUtils
import scoverage.report.CoverageAggregator

class ScoverageAggregate extends DefaultTask {
Expand Down Expand Up @@ -38,29 +37,20 @@ class ScoverageAggregate extends DefaultTask {
final Property<Boolean> coverageDebug = project.objects.property(Boolean)

ScoverageAggregate() {
dirsToAggregateFrom.set([])
dirsToAggregateFrom.set([project.extensions.scoverage.dataDir.get()])
}

@TaskAction
def aggregate() {
runner.run {
def rootDir = project.projectDir

def coverage
if (dirsToAggregateFrom.get().isEmpty()) {
coverage = CoverageAggregator.aggregate(rootDir, deleteReportsOnAggregation.get())
} else {
def reportFiles = dirsToAggregateFrom.get().collectMany {
JavaConversions.seqAsJavaList(IOUtils.reportFileSearch(it, IOUtils.isReportFile()))
}
coverage = CoverageAggregator.aggregate(JavaConversions.asScalaBuffer(reportFiles), deleteReportsOnAggregation.get())
}

reportDir.get().deleteDir()
reportDir.get().mkdirs()

def coverage = CoverageAggregator.aggregate(dirsToAggregateFrom.get() as File[])

if (coverage.nonEmpty()) {
new ScoverageWriter(project.logger).write(
rootDir,
project.projectDir,
reportDir.get(),
coverage.get(),
sourceEncoding.get(),
Expand Down
2 changes: 1 addition & 1 deletion src/main/groovy/org/scoverage/ScoverageExtension.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ class ScoverageExtension {
project.plugins.apply(ScalaPlugin.class)

scoverageVersion = project.objects.property(String)
scoverageVersion.set('1.3.1')
scoverageVersion.set('1.4.1')

scoverageScalaVersion = project.objects.property(String)
scoverageScalaVersion.set('2.12')
Expand Down
9 changes: 6 additions & 3 deletions src/main/groovy/org/scoverage/ScoveragePlugin.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -138,16 +138,16 @@ class ScoveragePlugin implements Plugin<PluginAware> {
}

globalReportTask.configure {
def reportDirs = reportTasks.findResults { it.reportDir.get() }
def dataDirs = reportTasks.findResults { it.dataDir.get() }

dependsOn reportTasks
onlyIf { reportDirs.any { it.list() } }
onlyIf { dataDirs.any { it.list() } }

group = 'verification'
runner = scoverageRunner
reportDir = extension.reportDir
dirsToAggregateFrom = dataDirs
sourceEncoding.set(detectedSourceEncoding)
dirsToAggregateFrom = reportDirs
deleteReportsOnAggregation = false
coverageOutputCobertura = extension.coverageOutputCobertura
coverageOutputXML = extension.coverageOutputXML
Expand Down Expand Up @@ -175,11 +175,14 @@ class ScoveragePlugin implements Plugin<PluginAware> {
}

def aggregationTask = project.tasks.create(AGGREGATE_NAME, ScoverageAggregate) {
def dataDirs = allReportTasks.findResults { it.dirsToAggregateFrom.get() }.flatten()

dependsOn(allReportTasks)
group = 'verification'
runner = scoverageRunner
reportDir = extension.reportDir
sourceEncoding.set(detectedSourceEncoding)
dirsToAggregateFrom = dataDirs
deleteReportsOnAggregation = extension.deleteReportsOnAggregation
coverageOutputCobertura = extension.coverageOutputCobertura
coverageOutputXML = extension.coverageOutputXML
Expand Down
23 changes: 5 additions & 18 deletions src/main/groovy/org/scoverage/ScoverageReport.groovy
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,7 @@ import org.gradle.api.tasks.CacheableTask
import org.gradle.api.tasks.Input
import org.gradle.api.tasks.OutputDirectory
import org.gradle.api.tasks.TaskAction
// don't use scala.collection.JavaConverters as it breaks backward compatibility with scala 2.11
import scala.collection.JavaConversions
import scala.collection.Seq
import scala.collection.Set
import scoverage.Coverage
import scoverage.IOUtils
import scoverage.Serializer
import scoverage.report.CoverageAggregator

@CacheableTask
class ScoverageReport extends DefaultTask {
Expand Down Expand Up @@ -43,25 +37,18 @@ class ScoverageReport extends DefaultTask {
@TaskAction
def report() {
runner.run {
reportDir.get().delete()
reportDir.get().mkdirs()

File coverageFile = Serializer.coverageFile(dataDir.get())
def coverage = CoverageAggregator.aggregate([dataDir.get()] as File[])

if (!coverageFile.exists()) {
if (coverage.isEmpty()) {
project.logger.info("[scoverage] Could not find coverage file, skipping...")
} else {
File[] array = IOUtils.findMeasurementFiles(dataDir.get())
Seq<File> measurementFiles = JavaConversions.asScalaBuffer(Arrays.asList(array))

Coverage coverage = Serializer.deserialize(coverageFile)

Set<Object> measurements = IOUtils.invoked(measurementFiles)
coverage.apply(measurements)

new ScoverageWriter(project.logger).write(
sources.get(),
reportDir.get(),
coverage,
coverage.get(),
sourceEncoding.get(),
coverageOutputCobertura.get(),
coverageOutputXML.get(),
Expand Down