Skip to content

Commit 57e6d27

Browse files
committed
Add compatibility with spring's dependency management plugin
1 parent 213239b commit 57e6d27

File tree

6 files changed

+107
-2
lines changed

6 files changed

+107
-2
lines changed
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package org.scoverage;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
public class ScalaSingleModuleWithDepdencyManagerTest extends ScoverageFunctionalTest {
7+
8+
public ScalaSingleModuleWithDepdencyManagerTest() {
9+
super("scala-single-module-dependency-manager");
10+
}
11+
12+
@Test
13+
public void checkScoverage() throws Exception {
14+
15+
AssertableBuildResult result = run("clean", ScoveragePlugin.getCHECK_NAME());
16+
17+
result.assertTaskSucceeded(ScoveragePlugin.getCOMPILE_NAME());
18+
result.assertTaskSucceeded(ScoveragePlugin.getREPORT_NAME());
19+
result.assertTaskSucceeded(ScoveragePlugin.getCHECK_NAME());
20+
result.assertTaskDoesntExist(ScoveragePlugin.getAGGREGATE_NAME());
21+
22+
assertReportFilesExist();
23+
assertCoverage(100.0);
24+
}
25+
26+
private void assertReportFilesExist() {
27+
28+
Assert.assertTrue(resolve(reportDir(), "index.html").exists());
29+
Assert.assertTrue(resolve(reportDir(), "src/main/scala/org/hello/World.scala.html").exists());
30+
}
31+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
plugins {
2+
id 'io.spring.dependency-management' version "1.0.4.RELEASE"
3+
id 'org.scoverage'
4+
}
5+
6+
repositories {
7+
jcenter()
8+
}
9+
10+
description = 'a single-module Scala project with dependency manager that builds successfully with 100% coverage'
11+
12+
apply plugin: 'java'
13+
apply plugin: 'scala'
14+
15+
16+
dependencyManagement {
17+
dependencies {
18+
dependency group: 'org.scala-lang', name: 'scala-library', version: "${scalaVersionMajor}.${scalaVersionMinor}.${scalaVersionBuild}"
19+
}
20+
}
21+
22+
dependencies {
23+
compile group: 'org.scala-lang', name: 'scala-library'
24+
25+
// scala compilation with the dependency management plugin needs this (otherwise compilation will fail)
26+
zinc group: 'com.typesafe.zinc', name: 'zinc', version: '0.3.15'
27+
zinc group: 'org.scala-lang', name: 'scala-library', version: '2.10.5'
28+
29+
testRuntime group: 'org.junit.vintage', name: 'junit-vintage-engine', version: junitVersion
30+
testCompile group: 'org.junit.platform', name: 'junit-platform-runner', version: junitPlatformVersion
31+
32+
testCompile group: 'org.scalatest', name: "scalatest_${scalaVersionMajor}.${scalaVersionMinor}", version: scalatestVersion
33+
}
34+
35+
test {
36+
useJUnitPlatform()
37+
}
38+
39+
scoverage {
40+
minimumRate = 0.3
41+
}
42+

src/functionalTest/resources/projects/scala-single-module-dependency-manager/settings.gradle

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.hello
2+
3+
class World {
4+
5+
def foo(): String = {
6+
val s = "a" + "b"
7+
s
8+
}
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package org.hello
2+
3+
import org.junit.runner.RunWith
4+
import org.scalatest.FunSuite
5+
import org.scalatest.junit.JUnitRunner
6+
7+
@RunWith(classOf[JUnitRunner])
8+
class WorldSuite extends FunSuite {
9+
10+
test("foo") {
11+
new World().foo()
12+
}
13+
}

src/main/groovy/org/scoverage/ScoveragePlugin.groovy

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,24 @@ class ScoveragePlugin implements Plugin<PluginAware> {
5757

5858
project.afterEvaluate {
5959
def scoverageVersion = project.extensions.scoverage.scoverageVersion.get()
60-
def scalaVersion = project.extensions.scoverage.scoverageScalaVersion.get()
60+
def scalaVersion = null
6161

6262
def scalaLibrary = project.configurations.compile.dependencies.find {
6363
it.group == "org.scala-lang" && it.name == "scala-library"
6464
}
6565

6666
if (scalaLibrary != null) {
67-
scalaVersion = scalaLibrary.version.substring(0, scalaLibrary.version.lastIndexOf("."))
67+
scalaVersion = scalaLibrary.version
68+
}
69+
70+
if (scalaVersion == null && project.pluginManager.hasPlugin("io.spring.dependency-management")) {
71+
scalaVersion = project.dependencyManagement.compile.managedVersions["org.scala-lang:scala-library"]
72+
}
73+
74+
if (scalaVersion == null) {
75+
scalaVersion = project.extensions.scoverage.scoverageScalaVersion.get()
76+
} else {
77+
scalaVersion = scalaVersion.substring(0, scalaVersion.lastIndexOf("."))
6878
}
6979

7080
def fullScoverageVersion = "$scalaVersion:$scoverageVersion"

0 commit comments

Comments
 (0)