diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 775f031b..db03f72c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,8 @@ jobs: with: fetch-depth: 0 + - uses: sbt/setup-sbt@v1 + - name: Set up JVM uses: actions/setup-java@v4 with: @@ -30,7 +32,7 @@ jobs: java-version: ${{ matrix.java }} - name: Run tests - run: sbt scripted + run: sbt scripted "++ 3.x" test formatting: runs-on: ubuntu-latest @@ -47,5 +49,7 @@ jobs: distribution: 'temurin' java-version: '11' + - uses: sbt/setup-sbt@v1 + - name: Check Formatting - run: sbt scalafmtCheckAll + run: sbt scalafmtSbtCheck "+ scalafmtCheckAll" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index aa8cdd0a..6997694f 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,6 +15,7 @@ jobs: with: distribution: 'temurin' java-version: '11' + - uses: sbt/setup-sbt@v1 - run: sbt ci-release env: PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} diff --git a/.scalafmt.conf b/.scalafmt.conf index 61c08776..a834d75a 100644 --- a/.scalafmt.conf +++ b/.scalafmt.conf @@ -1,3 +1,3 @@ -version = "3.8.2" +version = "3.9.4" project.git = true runner.dialect = "scala213" diff --git a/README.md b/README.md index 107ba4f0..61856278 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,20 @@ # sbt-scoverage -[![Gitter](https://img.shields.io/gitter/room/scoverage/scoverage.svg)](https://gitter.im/scoverage/scoverage) -[![Maven Central](https://maven-badges.herokuapp.com/maven-central/org.scoverage/sbt-scoverage/badge.svg?kill_cache=1)](https://search.maven.org/artifact/org.scoverage/sbt-scoverage/) -[![License](http://img.shields.io/:license-Apache%202-red.svg)](http://www.apache.org/licenses/LICENSE-2.0.txt) +[![gitter-badge][]][gitter] +[![maven-badge][]][maven] +[![license-badge][]][license] -sbt-scoverage is an sbt plugin that offers support for Scala code coverage using -[scoverage](https://github.com/scoverage/scalac-scoverage-plugin). This plugin -supports Scala 2.12, 2.13, and 3. +sbt-scoverage is an sbt plugin that offers support for Scala code +coverage using [scoverage][]. This plugin supports Scala 2.12, 2.13, +and 3. -**NOTE**: that ScalaJS and Scala Native support is limited to Scala 2. -**NOTE**: that Scala 3 support starts with 3.2.x. +**NOTE**: ScalaJS and Scala Native support is limited to Scala 2. +**NOTE**: Scala 3 support starts with 3.2.x. ## Setup -**Requirements**: Requires sbt 1.2.8 or above +**Requirements**: Requires sbt 1.2.8 or above. In `project/plugins.sbt`: ```scala @@ -47,40 +47,43 @@ To generate the coverage reports run sbt coverageReport ``` -Coverage reports will be in your `target/scala-/scoverage-report` -directory. There are HTML and XML reports. The XML is useful if you need to -programatically use the results, or if you're writing a tool. +Coverage reports will be in your +`target/scala-/scoverage-report` directory. There are +HTML and XML reports. The XML is useful if you need to programatically +use the results, or if you're writing a tool. -**NOTE**: If you're running the coverage reports from within an sbt console -session (as opposed to one command per sbt launch), then the `coverage` command -is sticky. To turn it back off when you're done running reports, use the -`coverageOff` command or reset `coverageEnabled` with `set coverageEnabled := -false`. +**NOTE**: If you're running the coverage reports from within an sbt +console session (as opposed to one command per sbt launch), then the +`coverage` command is sticky. To turn it back off when you're done +running reports, use the `coverageOff` command or reset +`coverageEnabled` with `set coverageEnabled := false`. ### Multi project reports -By default, scoverage will generate reports for each project separately. You can -merge them into an aggregated report by using the following: +By default, scoverage will generate reports for each project +separately. You can merge them into an aggregated report by using the +following: ``` $ sbt coverageAggregate ``` -**NOTE**: You do not need to run `coverageReport` before `coverageAggregate`; it -aggregates over the sub-projects' coverage data directly, not the report xml. +**NOTE**: You do not need to run `coverageReport` before +`coverageAggregate`; it aggregates over the sub-projects' coverage +data directly, not the report xml. ### Exclude classes and packages and files -You can exclude classes from being considered for coverage measurement by -providing semicolon-separated list of regular expressions. +You can exclude classes from being considered for coverage measurement +by providing semicolon-separated list of regular expressions. ```scala coverageExcludedPackages := ";Reverse.*;.*AuthService.*;models\\.data\\..*" ``` -The regular expressions are matched against the fully qualified class name, and -must match the entire string to take effect. Any matched classes will not be -instrumented or included in the coverage report. +The regular expressions are matched against the fully qualified class +name, and must match the entire string to take effect. Any matched +classes will not be instrumented or included in the coverage report. You can also exclude files and file paths. @@ -88,9 +91,10 @@ You can also exclude files and file paths. coverageExcludedFiles := ".*\\/two\\/GoodCoverage;.*\\/three\\/.*" ``` -Note: The `.scala` file extension needs to be omitted from the filename, if one is given. +**NOTE**: The `.scala` file extension needs to be omitted from the +filename, if one is given. -Note: These two options only work for Scala2 and Scala 3.4.2+. +**NOTE**: These two options only work for Scala2, Scala 3.3.4+ and Scala 3.4.2+. You can also mark sections of code with comments like: @@ -103,7 +107,7 @@ You can also mark sections of code with comments like: Any code between two such comments will not be instrumented or included in the coverage report. -Note: Comments exclusion works only for Scala2. +**NOTE**: Comments exclusion works only for Scala2. ### Minimum coverage @@ -119,13 +123,14 @@ coverageMinimumStmtPerFile := 85 coverageMinimumBranchPerFile := 80 ``` -These settings will be enforced when the reports are generated. If you generate -an aggregate report using `coverageAggregate` then these settings will apply to -that report. +These settings will be enforced when the reports are generated. If +you generate an aggregate report using `coverageAggregate` then these +settings will apply to that report. ### Override Location for Coverage Data And Report -If desired, one could override the default location for generating the sbt report and data through setting `coverageDataDir`: +If desired, one could override the default location for generating the +sbt report and data through setting `coverageDataDir`: Example in data-dir test: ```scala @@ -139,49 +144,68 @@ set coverageDataDir := file("/tmp") ## Trouble-shooting failing tests -scoverage does a lot of file writing behind the scenes in order to track which -statements have been executed. If you are running into a scenario where your -tests normally pass, but fail when scoverage is enabled, then the culprit can be -one of the following: +scoverage does a lot of file writing behind the scenes in order to +track which statements have been executed. If you are running into a +scenario where your tests normally pass, but fail when scoverage is +enabled, then the culprit can be one of the following: -* timing issues on futures and other async operations, try upping the timeouts by an order of magnitude. -* tests are run in a sandbox mode (such as with `java.security.PrivilegedAction`), try running the tests outside of the sandbox. +* timing issues on futures and other async operations, try upping the + timeouts by an order of magnitude. +* tests are run in a sandbox mode (such as with + `java.security.PrivilegedAction`), try running the tests outside + of the sandbox. ## Example project -[the scoverage samples project](https://github.com/scoverage/sbt-scoverage-samples). +To see the plugin in action you can checkout the scoverage [samples][] +project. ## Integrations ### Codacy -[Codacy](https://www.codacy.com) integrates with your favorite coverage tool to -provide an in-depth overlook of your project status. scoverage information can -be integrated into Codacy through the -[codacy-coverage-reporter](https://github.com/codacy/codacy-coverage-reporter). +[Codacy][] integrates with your favorite coverage tool to provide an +in-depth overlook of your project status. scoverage information can be +integrated into Codacy through the [codacy-coverage-reporter][]. ### Coveralls -If you have an open source project then you can add code coverage metrics with -the [Coveralls](https://coveralls.io/). scoverage will integrate with coveralls -using the [sbt-coveralls](https://github.com/scoverage/sbt-coveralls) plugin. +If you have an open source project then you can publish the code +coverage metrics with [Coveralls][]. This plugin will integrate with +coveralls using the [sbt-coveralls][] plugin. ### Codecov -You can integrate with [Codecov](https://about.codecov.io/) easily sending your -reports there via your CI. You can see an example of this here in -[codecov/example-scala](https://github.com/codecov/example-scala). +You can also integrate with [Codecov][] by sending your reports there +via your CI. You can see an example in [codecov-example-scala][]. -### Plugin for SonarQube +### SonarQube -If you want to visually browse statement coverage reports then use this [plugin -for SonarQube](https://github.com/RadoBuransky/sonar-scoverage-plugin). It -allows you to review overall project statement coverage as well as dig deeper -into sub-modules, directories and source code files to see uncovered statements. -Statement coverage measurement can become an integral part of your team's -continuous integration process and a required quality standard. +If you want to visually browse coverage reports then you can use the +[SonarQube][] plugin. It allows you to review overall project +statement coverage as well as dig deeper into sub-modules, directories +and source code files to see uncovered statements. Statement coverage +measurement can become an integral part of your team's continuous +integration process and a required quality standard. ## Release Notes -For any information on releases and upgrading, please refer to the [release -page](https://github.com/scoverage/sbt-scoverage/releases). +For any information on releases and upgrading, please refer to the +[release][] page. + +[Codacy]: https://www.codacy.com +[Codecov]: https://about.codecov.io +[Coveralls]: https://coveralls.io +[SonarQube]: https://github.com/RadoBuransky/sonar-scoverage-plugin +[codacy-coverage-reporter]: https://github.com/codacy/codacy-coverage-reporter +[codecov-example-scala]: https://github.com/codecov/example-scala +[gitter-badge]: https://img.shields.io/gitter/room/scoverage/scoverage.svg +[gitter]: https://gitter.im/scoverage/scoverage +[license-badge]: http://img.shields.io/:license-Apache%202-red.svg +[license]: http://www.apache.org/licenses/LICENSE-2.0.txt +[maven-badge]: https://index.scala-lang.org/scoverage/sbt-scoverage/sbt-scoverage/latest.svg +[maven]: https://search.maven.org/artifact/org.scoverage/sbt-scoverage +[release]: https://github.com/scoverage/sbt-scoverage/releases +[samples]: https://github.com/scoverage/sbt-scoverage-samples +[sbt-coveralls]: https://github.com/scoverage/sbt-coveralls +[scoverage]: https://github.com/scoverage/scalac-scoverage-plugin diff --git a/build.sbt b/build.sbt index eb9695ff..0d9bbf6f 100644 --- a/build.sbt +++ b/build.sbt @@ -2,7 +2,7 @@ name := "sbt-scoverage" import sbt.ScriptedPlugin.autoImport.scriptedLaunchOpts -lazy val scoverageVersion = "2.1.1" +lazy val scoverageVersion = "2.3.0" inThisBuild( List( @@ -32,18 +32,25 @@ inThisBuild( lazy val root = Project("sbt-scoverage", file(".")) .enablePlugins(SbtPlugin, BuildInfoPlugin) .settings( + crossScalaVersions += "3.6.2", libraryDependencies ++= Seq( - "org.scoverage" %% "scalac-scoverage-plugin" % scoverageVersion cross (CrossVersion.full), - "org.scoverage" %% "scalac-scoverage-reporter" % scoverageVersion, - "org.scoverage" %% "scalac-scoverage-domain" % scoverageVersion, - "org.scoverage" %% "scalac-scoverage-serializer" % scoverageVersion + "org.scoverage" %% "scalac-scoverage-reporter" % scoverageVersion ), + pluginCrossBuild / sbtVersion := { + scalaBinaryVersion.value match { + case "2.12" => + (pluginCrossBuild / sbtVersion).value + case _ => + "2.0.0-M3" + } + }, buildInfoKeys := Seq[BuildInfoKey]("scoverageVersion" -> scoverageVersion), buildInfoPackage := "scoverage", Test / fork := false, Test / publishArtifact := false, Test / parallelExecution := false, scalacOptions := Seq( + "-language:implicitConversions", "-unchecked", "-deprecation", "-feature", diff --git a/project/build.properties b/project/build.properties index 04267b14..cc68b53f 100644 --- a/project/build.properties +++ b/project/build.properties @@ -1 +1 @@ -sbt.version=1.9.9 +sbt.version=1.10.11 diff --git a/project/plugins.sbt b/project/plugins.sbt index 0edb7d60..86a78031 100644 --- a/project/plugins.sbt +++ b/project/plugins.sbt @@ -1,4 +1,4 @@ libraryDependencies += "org.scala-sbt" %% "scripted-plugin" % sbtVersion.value -addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.5.12") -addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.12.0") -addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.2") +addSbtPlugin("com.github.sbt" % "sbt-ci-release" % "1.9.3") +addSbtPlugin("com.eed3si9n" % "sbt-buildinfo" % "0.13.1") +addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.5.4") diff --git a/src/main/scala/scoverage/ScoverageSbtPlugin.scala b/src/main/scala/scoverage/ScoverageSbtPlugin.scala index feba91ba..b5ac6601 100644 --- a/src/main/scala/scoverage/ScoverageSbtPlugin.scala +++ b/src/main/scala/scoverage/ScoverageSbtPlugin.scala @@ -1,7 +1,7 @@ package scoverage import sbt.Keys._ -import sbt._ +import sbt.{given, _} import sbt.internal.util.Util.isWindows import sbt.plugins.JvmPlugin import scoverage.reporter.CoberturaXmlWriter @@ -89,11 +89,13 @@ object ScoverageSbtPlugin extends AutoPlugin { } private def isScala3SupportingFilePackageExclusion(scalaVersion: String) = { - def patch = scalaVersion.split('.').drop(2).headOption + def patch = scalaVersion.split('.').map(_.toInt).drop(2).headOption CrossVersion .partialVersion(scalaVersion) .exists { - case (3, minor) if minor >= 4 && patch.exists(_ >= "2") => true + case (3, minor) if minor > 4 => true + case (3, minor) if (minor == 4 && patch.exists(_ >= 2)) => true + case (3, minor) if (minor == 3 && patch.exists(_ >= 4)) => true case _ => false } } @@ -122,7 +124,7 @@ object ScoverageSbtPlugin extends AutoPlugin { private lazy val scalacSettings = Seq( Compile / compile / scalacOptions ++= { - implicit val log = streams.value.log + implicit val log: Logger = streams.value.log val excludedPackages = Option(coverageExcludedPackages.value.trim).filter(_.nonEmpty) @@ -173,7 +175,7 @@ object ScoverageSbtPlugin extends AutoPlugin { s"-Xplugin:${pluginPaths.mkString(java.io.File.pathSeparator)}" ), Some( - s"-P:scoverage:dataDir:${coverageDataDir.value.getAbsolutePath}/scoverage-data" + s"-P:scoverage:dataDir:${new java.io.File(coverageDataDir.value, "scoverage-data").getAbsolutePath}" ), Some( s"-P:scoverage:sourceRoot:${coverageSourceRoot.value.getAbsolutePath}" @@ -189,7 +191,7 @@ object ScoverageSbtPlugin extends AutoPlugin { ) { Seq( Some( - s"-coverage-out:${coverageDataDir.value.getAbsolutePath()}/scoverage-data" + s"-coverage-out:${new java.io.File(coverageDataDir.value, "scoverage-data").getAbsolutePath}" ), excludedPackages .collect { @@ -197,7 +199,7 @@ object ScoverageSbtPlugin extends AutoPlugin { if isScala3SupportingFilePackageExclusion( scalaVersion.value ) => - s"-coverage-exclude-classlikes:$v" + s"-coverage-exclude-classlikes:${v.replace(';', ',')}" }, excludedFiles .collect { @@ -205,7 +207,7 @@ object ScoverageSbtPlugin extends AutoPlugin { if isScala3SupportingFilePackageExclusion( scalaVersion.value ) => - s"-coverage-exclude-files:$v" + s"-coverage-exclude-files:${v.replace(';', ',')}" } ).flatten } else if (coverageEnabled.value && !isScala2(scalaVersion.value)) { @@ -239,7 +241,7 @@ object ScoverageSbtPlugin extends AutoPlugin { private lazy val coverageReport0 = Def.task { val target = coverageDataDir.value - implicit val log = streams.value.log + implicit val log: Logger = streams.value.log log.info(s"Waiting for measurement data to sync...") if (System.getProperty("os.name").toLowerCase.contains("windows")) { @@ -274,7 +276,7 @@ object ScoverageSbtPlugin extends AutoPlugin { } private lazy val coverageAggregate0 = Def.task { - implicit val log = streams.value.log + implicit val log: Logger = streams.value.log log.info(s"Aggregating coverage from subprojects...") val dataDirs = coverageDataDir.?.all(aggregateFilter).value @@ -395,7 +397,7 @@ object ScoverageSbtPlugin extends AutoPlugin { reportDir: File, crossTarget: File, log: Logger - ) { + ): Unit = { def statsKeyValue(key: String, value: Int): String = s"##teamcity[buildStatisticValue key='$key' value='$value']" diff --git a/src/sbt-test/scoverage/aggregate-disabled-module/build.sbt b/src/sbt-test/scoverage/aggregate-disabled-module/build.sbt index 45dfae25..df04514c 100644 --- a/src/sbt-test/scoverage/aggregate-disabled-module/build.sbt +++ b/src/sbt-test/scoverage/aggregate-disabled-module/build.sbt @@ -1,8 +1,8 @@ inThisBuild( List( organization := "org.scoverage", - scalaVersion := "2.13.13", - libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test + scalaVersion := "2.13.16", + libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test ) ) @@ -12,6 +12,6 @@ lazy val c = project.disablePlugins(ScoverageSbtPlugin) ThisBuild / resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/aggregate-only/build.sbt b/src/sbt-test/scoverage/aggregate-only/build.sbt index e148019e..be809289 100644 --- a/src/sbt-test/scoverage/aggregate-only/build.sbt +++ b/src/sbt-test/scoverage/aggregate-only/build.sbt @@ -6,7 +6,7 @@ lazy val commonSettings = Seq( organization := "org.scoverage", version := "0.1.0", - scalaVersion := "2.13.13" + scalaVersion := "2.13.16" ) def module(name: String) = { @@ -15,7 +15,7 @@ def module(name: String) = { .settings(commonSettings: _*) .settings( Keys.name := name, - libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test + libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test ) } @@ -35,6 +35,6 @@ lazy val root = (project in file(".")) ThisBuild / resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/aggregate/build.sbt b/src/sbt-test/scoverage/aggregate/build.sbt index e148019e..ff077f58 100644 --- a/src/sbt-test/scoverage/aggregate/build.sbt +++ b/src/sbt-test/scoverage/aggregate/build.sbt @@ -15,7 +15,7 @@ def module(name: String) = { .settings(commonSettings: _*) .settings( Keys.name := name, - libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test + libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test ) } @@ -35,6 +35,6 @@ lazy val root = (project in file(".")) ThisBuild / resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage-file-branch/build.sbt b/src/sbt-test/scoverage/bad-coverage-file-branch/build.sbt index 49d93c86..8c0839c3 100644 --- a/src/sbt-test/scoverage/bad-coverage-file-branch/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage-file-branch/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumBranchPerFile := 80 @@ -14,6 +14,6 @@ resolvers ++= { .get("plugin.version") .map(_.endsWith("-SNAPSHOT")) .getOrElse(false) - ) Seq(Resolver.sonatypeRepo("snapshots")) + ) Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage-file-stmt/build.sbt b/src/sbt-test/scoverage/bad-coverage-file-stmt/build.sbt index 66e55557..9ac10058 100644 --- a/src/sbt-test/scoverage/bad-coverage-file-stmt/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage-file-stmt/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumStmtPerFile := 90 @@ -14,6 +14,6 @@ resolvers ++= { .get("plugin.version") .map(_.endsWith("-SNAPSHOT")) .getOrElse(false) - ) Seq(Resolver.sonatypeRepo("snapshots")) + ) Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage-package-branch/build.sbt b/src/sbt-test/scoverage/bad-coverage-package-branch/build.sbt index aba950e6..1ffbc32c 100644 --- a/src/sbt-test/scoverage/bad-coverage-package-branch/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage-package-branch/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumBranchPerPackage := 80 @@ -14,6 +14,6 @@ resolvers ++= { .get("plugin.version") .map(_.endsWith("-SNAPSHOT")) .getOrElse(false) - ) Seq(Resolver.sonatypeRepo("snapshots")) + ) Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage-package-stmt/build.sbt b/src/sbt-test/scoverage/bad-coverage-package-stmt/build.sbt index 8afb7d2c..8c28c01c 100644 --- a/src/sbt-test/scoverage/bad-coverage-package-stmt/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage-package-stmt/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumStmtPerPackage := 80 @@ -14,6 +14,6 @@ resolvers ++= { .get("plugin.version") .map(_.endsWith("-SNAPSHOT")) .getOrElse(false) - ) Seq(Resolver.sonatypeRepo("snapshots")) + ) Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage-total-branch/build.sbt b/src/sbt-test/scoverage/bad-coverage-total-branch/build.sbt index 65588c14..6fa49e43 100644 --- a/src/sbt-test/scoverage/bad-coverage-total-branch/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage-total-branch/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumBranchTotal := 80 @@ -14,6 +14,6 @@ resolvers ++= { .get("plugin.version") .map(_.endsWith("-SNAPSHOT")) .getOrElse(false) - ) Seq(Resolver.sonatypeRepo("snapshots")) + ) Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage-total-stmt/build.sbt b/src/sbt-test/scoverage/bad-coverage-total-stmt/build.sbt index 323acd62..b771e808 100644 --- a/src/sbt-test/scoverage/bad-coverage-total-stmt/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage-total-stmt/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumStmtTotal := 80 @@ -14,6 +14,6 @@ resolvers ++= { .get("plugin.version") .map(_.endsWith("-SNAPSHOT")) .getOrElse(false) - ) Seq(Resolver.sonatypeRepo("snapshots")) + ) Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/bad-coverage/build.sbt b/src/sbt-test/scoverage/bad-coverage/build.sbt index 10f0b40b..0ae6e541 100644 --- a/src/sbt-test/scoverage/bad-coverage/build.sbt +++ b/src/sbt-test/scoverage/bad-coverage/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumStmtTotal := 80 @@ -10,6 +10,6 @@ coverageFailOnMinimum := true resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/coverage-excluded-files/build.sbt b/src/sbt-test/scoverage/coverage-excluded-files/build.sbt index 1f595f00..1fcb1652 100644 --- a/src/sbt-test/scoverage/coverage-excluded-files/build.sbt +++ b/src/sbt-test/scoverage/coverage-excluded-files/build.sbt @@ -2,12 +2,12 @@ version := "0.1" scalaVersion := "2.13.13" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test -coverageExcludedFiles := ".*/two/GoodCoverage" +coverageExcludedFiles := ".*\\/two\\/GoodCoverage;.*\\/three\\/.*" resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/coverage-excluded-files/test b/src/sbt-test/scoverage/coverage-excluded-files/test index 7822d7ab..73b1427d 100644 --- a/src/sbt-test/scoverage/coverage-excluded-files/test +++ b/src/sbt-test/scoverage/coverage-excluded-files/test @@ -4,4 +4,6 @@ > test > coverageReport # There should be no directory for the excluded files +$ exists target/scala-2.13/scoverage-report/GoodCoverage.scala.html -$ exists target/scala-2.13/scoverage-report/two +-$ exists target/scala-2.13/scoverage-report/three diff --git a/src/sbt-test/scoverage/coverage-excluded-packages/build.sbt b/src/sbt-test/scoverage/coverage-excluded-packages/build.sbt index b87f3382..4212ee1b 100644 --- a/src/sbt-test/scoverage/coverage-excluded-packages/build.sbt +++ b/src/sbt-test/scoverage/coverage-excluded-packages/build.sbt @@ -1,13 +1,13 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test -coverageExcludedPackages := "two\\..*" +coverageExcludedPackages := "two\\..*;three\\..*" resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/coverage-excluded-packages/test b/src/sbt-test/scoverage/coverage-excluded-packages/test index 72f81f6c..6e9c114f 100644 --- a/src/sbt-test/scoverage/coverage-excluded-packages/test +++ b/src/sbt-test/scoverage/coverage-excluded-packages/test @@ -4,4 +4,6 @@ > test > coverageReport # There should be no directory for the excluded package +$ exists target/scala-2.13/scoverage-report/GoodCoverage.scala.html -$ exists target/scala-2.13/scoverage-report/two +-$ exists target/scala-2.13/scoverage-report/three diff --git a/src/sbt-test/scoverage/coverage-off/build.sbt b/src/sbt-test/scoverage/coverage-off/build.sbt index d7a52356..89d4bf29 100644 --- a/src/sbt-test/scoverage/coverage-off/build.sbt +++ b/src/sbt-test/scoverage/coverage-off/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumStmtTotal := 100 coverageMinimumBranchTotal := 100 @@ -15,6 +15,6 @@ coverageFailOnMinimum := true resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/data-dir/build.sbt b/src/sbt-test/scoverage/data-dir/build.sbt index 56753f62..87dc5e73 100644 --- a/src/sbt-test/scoverage/data-dir/build.sbt +++ b/src/sbt-test/scoverage/data-dir/build.sbt @@ -12,6 +12,6 @@ coverageFailOnMinimum := true resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/good-coverage/build.sbt b/src/sbt-test/scoverage/good-coverage/build.sbt index d7a52356..89d4bf29 100644 --- a/src/sbt-test/scoverage/good-coverage/build.sbt +++ b/src/sbt-test/scoverage/good-coverage/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test coverageMinimumStmtTotal := 100 coverageMinimumBranchTotal := 100 @@ -15,6 +15,6 @@ coverageFailOnMinimum := true resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/preserve-set/build.sbt b/src/sbt-test/scoverage/preserve-set/build.sbt index eb97e244..83f42cab 100644 --- a/src/sbt-test/scoverage/preserve-set/build.sbt +++ b/src/sbt-test/scoverage/preserve-set/build.sbt @@ -2,11 +2,11 @@ import sbt.complete.DefaultParsers._ version := "0.1" -scalaVersion := "2.13.13" +scalaVersion := "2.13.16" -crossScalaVersions := Seq("2.13.13") +crossScalaVersions := Seq("2.13.16") -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test val checkScalaVersion = inputKey[Unit]( "Input task to compare the value of scalaVersion setting with a given input." @@ -34,7 +34,7 @@ checkScoverageEnabled := { resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/preserve-set/test b/src/sbt-test/scoverage/preserve-set/test index f66c1976..6b815906 100644 --- a/src/sbt-test/scoverage/preserve-set/test +++ b/src/sbt-test/scoverage/preserve-set/test @@ -1,8 +1,8 @@ # check scalaVersion setting -> checkScalaVersion "2.13.13" +> checkScalaVersion "2.13.16" > checkScoverageEnabled "false" > coverage > checkScoverageEnabled "true" > coverageOff -> checkScalaVersion "2.13.13" +> checkScalaVersion "2.13.16" > checkScoverageEnabled "false" diff --git a/src/sbt-test/scoverage/scala3-bad/build.sbt b/src/sbt-test/scoverage/scala3-bad/build.sbt index 1eebd0b6..14d9917f 100644 --- a/src/sbt-test/scoverage/scala3-bad/build.sbt +++ b/src/sbt-test/scoverage/scala3-bad/build.sbt @@ -12,6 +12,6 @@ coverageEnabled := true resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/scala3-coverage-excluded-files/build.sbt b/src/sbt-test/scoverage/scala3-coverage-excluded-files/build.sbt index fef0a139..9f4c05ec 100644 --- a/src/sbt-test/scoverage/scala3-coverage-excluded-files/build.sbt +++ b/src/sbt-test/scoverage/scala3-coverage-excluded-files/build.sbt @@ -1,13 +1,13 @@ version := "0.1" -scalaVersion := "3.4.2" +scalaVersion := "3.5.0" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test -coverageExcludedFiles := ".*/two/GoodCoverage" +coverageExcludedFiles := ".*\\/two\\/GoodCoverage;.*\\/three\\/.*" resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/scala3-coverage-excluded-files/src/main/scala/three/GoodCoverage.scala b/src/sbt-test/scoverage/scala3-coverage-excluded-files/src/main/scala/three/GoodCoverage.scala new file mode 100644 index 00000000..260d15a4 --- /dev/null +++ b/src/sbt-test/scoverage/scala3-coverage-excluded-files/src/main/scala/three/GoodCoverage.scala @@ -0,0 +1,9 @@ +package three + +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3-coverage-excluded-files/test b/src/sbt-test/scoverage/scala3-coverage-excluded-files/test index 08688334..33ed081f 100644 --- a/src/sbt-test/scoverage/scala3-coverage-excluded-files/test +++ b/src/sbt-test/scoverage/scala3-coverage-excluded-files/test @@ -4,4 +4,6 @@ > test > coverageReport # There should be no directory for the excluded files --$ exists target/scala-3.4.2/scoverage-report/two \ No newline at end of file +$ exists target/scala-3.5.0/scoverage-report/GoodCoverage.scala.html +-$ exists target/scala-3.5.0/scoverage-report/two +-$ exists target/scala-3.5.0/scoverage-report/three diff --git a/src/sbt-test/scoverage/scala3-coverage-excluded-packages/build.sbt b/src/sbt-test/scoverage/scala3-coverage-excluded-packages/build.sbt index 083a1e20..47b8729c 100644 --- a/src/sbt-test/scoverage/scala3-coverage-excluded-packages/build.sbt +++ b/src/sbt-test/scoverage/scala3-coverage-excluded-packages/build.sbt @@ -1,13 +1,13 @@ version := "0.1" -scalaVersion := "3.4.2" +scalaVersion := "3.5.0" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test -coverageExcludedPackages := "two\\..*" +coverageExcludedPackages := "two\\..*;three\\..*" resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/scala3-coverage-excluded-packages/src/main/scala/three/GoodCoverage.scala b/src/sbt-test/scoverage/scala3-coverage-excluded-packages/src/main/scala/three/GoodCoverage.scala new file mode 100644 index 00000000..260d15a4 --- /dev/null +++ b/src/sbt-test/scoverage/scala3-coverage-excluded-packages/src/main/scala/three/GoodCoverage.scala @@ -0,0 +1,9 @@ +package three + +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3-coverage-excluded-packages/test b/src/sbt-test/scoverage/scala3-coverage-excluded-packages/test index e611b048..f079e48e 100644 --- a/src/sbt-test/scoverage/scala3-coverage-excluded-packages/test +++ b/src/sbt-test/scoverage/scala3-coverage-excluded-packages/test @@ -4,4 +4,6 @@ > test > coverageReport # There should be no directory for the excluded package --$ exists target/scala-3.4.2/scoverage-report/two +$ exists target/scala-3.5.0/scoverage-report/GoodCoverage.scala.html +-$ exists target/scala-3.5.0/scoverage-report/two +-$ exists target/scala-3.5.0/scoverage-report/three diff --git a/src/sbt-test/scoverage/scala3-good/build.sbt b/src/sbt-test/scoverage/scala3-good/build.sbt index 11e62df8..a6d7d68f 100644 --- a/src/sbt-test/scoverage/scala3-good/build.sbt +++ b/src/sbt-test/scoverage/scala3-good/build.sbt @@ -1,8 +1,8 @@ version := "0.1" -scalaVersion := "3.2.0-RC1" +scalaVersion := "3.5.0" -libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test +libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test coverageMinimumStmtTotal := 100 coverageMinimumBranchTotal := 100 @@ -15,6 +15,6 @@ coverageFailOnMinimum := true resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/build.sbt b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/build.sbt new file mode 100644 index 00000000..a6ecdab4 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/build.sbt @@ -0,0 +1,13 @@ +version := "0.1" + +scalaVersion := "3.3.4" + +libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test + +coverageExcludedFiles := ".*\\/two\\/GoodCoverage;.*\\/three\\/.*" + +resolvers ++= { + if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) + Resolver.sonatypeOssRepos("snapshots") + else Seq.empty +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/project/build.properties b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/project/build.properties new file mode 100644 index 00000000..04267b14 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.9 diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/project/plugins.sbt b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/project/plugins.sbt new file mode 100644 index 00000000..8d349239 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/project/plugins.sbt @@ -0,0 +1,16 @@ +val pluginVersion = sys.props.getOrElse( + "plugin.version", + throw new RuntimeException( + """|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin + ) +) + +addSbtPlugin("org.scoverage" % "sbt-scoverage" % pluginVersion) + +resolvers ++= { + if (pluginVersion.endsWith("-SNAPSHOT")) + Seq(Resolver.sonatypeRepo("snapshots")) + else + Seq.empty +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/GoodCoverage.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/GoodCoverage.scala new file mode 100644 index 00000000..ac6582bb --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/GoodCoverage.scala @@ -0,0 +1,7 @@ +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/three/GoodCoverage.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/three/GoodCoverage.scala new file mode 100644 index 00000000..260d15a4 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/three/GoodCoverage.scala @@ -0,0 +1,9 @@ +package three + +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/two/GoodCoverage.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/two/GoodCoverage.scala new file mode 100644 index 00000000..587e11e1 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/main/scala/two/GoodCoverage.scala @@ -0,0 +1,9 @@ +package two + +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/test/scala/GoodCoverageSpec.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/test/scala/GoodCoverageSpec.scala new file mode 100644 index 00000000..44eec1c9 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/src/test/scala/GoodCoverageSpec.scala @@ -0,0 +1,19 @@ +import munit.FunSuite + +/** Created by tbarke001c on 7/8/14. + */ +class GoodCoverageSpec extends FunSuite { + + test("GoodCoverage should sum two numbers") { + assertEquals(GoodCoverage.sum(1, 2), 3) + assertEquals(GoodCoverage.sum(0, 3), 3) + assertEquals(GoodCoverage.sum(3, 0), 3) + } + + test("two.GoodCoverage should sum two numbers") { + assertEquals(two.GoodCoverage.sum(1, 2), 3) + assertEquals(two.GoodCoverage.sum(0, 3), 3) + assertEquals(two.GoodCoverage.sum(3, 0), 3) + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/test b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/test new file mode 100644 index 00000000..ce85327e --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-files/test @@ -0,0 +1,9 @@ +# run scoverage using the coverage task +> clean +> coverage +> test +> coverageReport +# There should be no directory for the excluded files +$ exists target/scala-3.3.4/scoverage-report/GoodCoverage.scala.html +-$ exists target/scala-3.3.4/scoverage-report/two +-$ exists target/scala-3.3.4/scoverage-report/three diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/build.sbt b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/build.sbt new file mode 100644 index 00000000..429b97c4 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/build.sbt @@ -0,0 +1,13 @@ +version := "0.1" + +scalaVersion := "3.3.4" + +libraryDependencies += "org.scalameta" %% "munit" % "1.0.1" % Test + +coverageExcludedPackages := "two\\..*;three\\..*" + +resolvers ++= { + if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) + Resolver.sonatypeOssRepos("snapshots") + else Seq.empty +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/project/build.properties b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/project/build.properties new file mode 100644 index 00000000..04267b14 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/project/build.properties @@ -0,0 +1 @@ +sbt.version=1.9.9 diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/project/plugins.sbt b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/project/plugins.sbt new file mode 100644 index 00000000..8d349239 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/project/plugins.sbt @@ -0,0 +1,16 @@ +val pluginVersion = sys.props.getOrElse( + "plugin.version", + throw new RuntimeException( + """|The system property 'plugin.version' is not defined. + |Specify this property using the scriptedLaunchOpts -D.""".stripMargin + ) +) + +addSbtPlugin("org.scoverage" % "sbt-scoverage" % pluginVersion) + +resolvers ++= { + if (pluginVersion.endsWith("-SNAPSHOT")) + Seq(Resolver.sonatypeRepo("snapshots")) + else + Seq.empty +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/GoodCoverage.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/GoodCoverage.scala new file mode 100644 index 00000000..ac6582bb --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/GoodCoverage.scala @@ -0,0 +1,7 @@ +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/three/GoodCoverage.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/three/GoodCoverage.scala new file mode 100644 index 00000000..260d15a4 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/three/GoodCoverage.scala @@ -0,0 +1,9 @@ +package three + +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/two/GoodCoverage.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/two/GoodCoverage.scala new file mode 100644 index 00000000..587e11e1 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/main/scala/two/GoodCoverage.scala @@ -0,0 +1,9 @@ +package two + +object GoodCoverage { + + def sum(num1: Int, num2: Int) = { + if (0 == num1) num2 else if (0 == num2) num1 else num1 + num2 + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/test/scala/GoodCoverageSpec.scala b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/test/scala/GoodCoverageSpec.scala new file mode 100644 index 00000000..44eec1c9 --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/src/test/scala/GoodCoverageSpec.scala @@ -0,0 +1,19 @@ +import munit.FunSuite + +/** Created by tbarke001c on 7/8/14. + */ +class GoodCoverageSpec extends FunSuite { + + test("GoodCoverage should sum two numbers") { + assertEquals(GoodCoverage.sum(1, 2), 3) + assertEquals(GoodCoverage.sum(0, 3), 3) + assertEquals(GoodCoverage.sum(3, 0), 3) + } + + test("two.GoodCoverage should sum two numbers") { + assertEquals(two.GoodCoverage.sum(1, 2), 3) + assertEquals(two.GoodCoverage.sum(0, 3), 3) + assertEquals(two.GoodCoverage.sum(3, 0), 3) + } + +} diff --git a/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/test b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/test new file mode 100644 index 00000000..a7dd274e --- /dev/null +++ b/src/sbt-test/scoverage/scala3.3.4-coverage-excluded-packages/test @@ -0,0 +1,9 @@ +# run scoverage using the coverage task +> clean +> coverage +> test +> coverageReport +# There should be no directory for the excluded package +$ exists target/scala-3.3.4/scoverage-report/GoodCoverage.scala.html +-$ exists target/scala-3.3.4/scoverage-report/two +-$ exists target/scala-3.3.4/scoverage-report/three diff --git a/src/sbt-test/scoverage/scalajs/build.sbt b/src/sbt-test/scoverage/scalajs/build.sbt index c8af3188..e5c5ea09 100644 --- a/src/sbt-test/scoverage/scalajs/build.sbt +++ b/src/sbt-test/scoverage/scalajs/build.sbt @@ -7,8 +7,8 @@ lazy val cross = CrossProject("sjstest", file("sjstest"))(JVMPlatform, JSPlatform) .crossType(CrossType.Full) .settings( - scalaVersion := "2.13.10", - libraryDependencies += "org.scalameta" %% "munit" % "0.7.29" % Test + scalaVersion := "2.13.16", + libraryDependencies += "org.scalameta" %% "munit" % "1.0.4" % Test ) lazy val crossJS = cross.js @@ -16,6 +16,6 @@ lazy val crossJVM = cross.jvm ThisBuild / resolvers ++= { if (sys.props.get("plugin.version").exists(_.endsWith("-SNAPSHOT"))) - Seq(Resolver.sonatypeRepo("snapshots")) + Resolver.sonatypeOssRepos("snapshots") else Seq.empty } diff --git a/src/sbt-test/scoverage/scalajs/project/plugins.sbt b/src/sbt-test/scoverage/scalajs/project/plugins.sbt index 004b68c3..dd6dc4ad 100644 --- a/src/sbt-test/scoverage/scalajs/project/plugins.sbt +++ b/src/sbt-test/scoverage/scalajs/project/plugins.sbt @@ -15,6 +15,6 @@ resolvers ++= { Seq.empty } -addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.16.0") +addSbtPlugin("org.scala-js" % "sbt-scalajs" % "1.18.1") addSbtPlugin("org.portable-scala" % "sbt-scalajs-crossproject" % "1.3.2")