Skip to content

Commit 2e7fb81

Browse files
committed
improvement: Add fallback to 2.3.0 for older Scala versions
1 parent 7358ba7 commit 2e7fb81

File tree

7 files changed

+78
-1
lines changed

7 files changed

+78
-1
lines changed

src/main/scala/scoverage/ScoverageSbtPlugin.scala

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,18 @@ object ScoverageSbtPlugin extends AutoPlugin {
7070
coverageReport := coverageReport0.value,
7171
coverageAggregate := coverageAggregate0.value,
7272
coverageAggregate / aggregate := false,
73-
coverageDataDir := crossTarget.value
73+
coverageDataDir := crossTarget.value,
74+
coverageScalacPluginVersion := {
75+
scalaVersion.value match {
76+
case "2.13.11" => "2.3.0"
77+
case "2.13.12" => "2.3.0"
78+
case "2.13.13" => "2.3.0"
79+
case "2.13.14" => "2.3.0"
80+
case "2.13.15" => "2.3.0"
81+
case "2.12.16" => "2.3.0"
82+
case _ => defaultScoverageVersion
83+
}
84+
}
7485
) ++ coverageSettings ++ scalacSettings
7586

7687
private def isScala2(scalaVersion: String) =
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
version := "0.1"
2+
3+
// Set older version to make sure fallbacks work correctly
4+
scalaVersion := "2.13.11"
5+
6+
libraryDependencies += "org.scalameta" %% "munit" % "1.0.0-M10" % Test
7+
8+
coverageMinimumStmtTotal := 100
9+
coverageMinimumBranchTotal := 100
10+
coverageMinimumStmtPerPackage := 100
11+
coverageMinimumBranchPerPackage := 100
12+
coverageMinimumStmtPerFile := 100
13+
coverageMinimumBranchPerFile := 100
14+
15+
coverageFailOnMinimum := true
16+
17+
allowUnsafeScalaLibUpgrade := true
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
val pluginVersion = sys.props.getOrElse(
2+
"plugin.version",
3+
throw new RuntimeException(
4+
"""|The system property 'plugin.version' is not defined.
5+
|Specify this property using the scriptedLaunchOpts -D.""".stripMargin
6+
)
7+
)
8+
9+
addSbtPlugin("org.scoverage" % "sbt-scoverage" % pluginVersion)
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
object GoodCoverage {
2+
3+
def sum(num1: Int, num2: Int) = {
4+
if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2
5+
}
6+
7+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package two
2+
3+
object GoodCoverage {
4+
5+
def sum(num1: Int, num2: Int) = {
6+
if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2
7+
}
8+
9+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import munit.FunSuite
2+
3+
/** Created by tbarke001c on 7/8/14.
4+
*/
5+
class GoodCoverageSpec extends FunSuite {
6+
7+
test("GoodCoverage should sum two numbers") {
8+
assertEquals(GoodCoverage.sum(1, 2), 3)
9+
assertEquals(GoodCoverage.sum(0, 3), 3)
10+
assertEquals(GoodCoverage.sum(3, 0), 3)
11+
}
12+
13+
test("two.GoodCoverage should sum two numbers") {
14+
assertEquals(two.GoodCoverage.sum(1, 2), 3)
15+
assertEquals(two.GoodCoverage.sum(0, 3), 3)
16+
assertEquals(two.GoodCoverage.sum(3, 0), 3)
17+
}
18+
19+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# run scoverage
2+
> clean
3+
> coverage
4+
> test
5+
> coverageReport

0 commit comments

Comments
 (0)