Skip to content

Migrate from scalatest to munit. #388

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 1 commit into from
Sep 25, 2021
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
6 changes: 3 additions & 3 deletions build.sbt
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import sbtcrossproject.CrossProject
import sbtcrossproject.CrossType

val scalatestVersion = "3.2.10"
val munitVersion = "0.7.29"
val scalametaVersion = "4.4.28"
val defaultScala213 = "2.13.6"
val bin212 =
Expand Down Expand Up @@ -102,7 +102,7 @@ lazy val runtime = CrossProject(
name := "scalac-scoverage-runtime",
crossTarget := target.value / s"scala-${scalaVersion.value}",
libraryDependencies ++= Seq(
"org.scalatest" %%% "scalatest" % scalatestVersion % Test
"org.scalameta" %% "munit" % munitVersion % Test
),
sharedSettings
)
Expand All @@ -125,7 +125,7 @@ lazy val plugin =
crossVersion := CrossVersion.full,
libraryDependencies ++= Seq(
"org.scala-lang.modules" %% "scala-xml" % "2.0.0",
"org.scalatest" %% "scalatest" % scalatestVersion % Test,
"org.scalameta" %% "munit" % munitVersion % Test,
"org.scala-lang" % "scala-compiler" % scalaVersion.value % Provided
),
sharedSettings
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,18 +9,13 @@ import scala.xml.Elem
import scala.xml.XML
import scala.xml.factory.XMLLoader

import org.scalatest.BeforeAndAfter
import org.scalatest.OneInstancePerTest
import org.scalatest.funsuite.AnyFunSuite
import munit.FunSuite
import org.xml.sax.ErrorHandler
import org.xml.sax.SAXParseException
import scoverage.report.CoberturaXmlWriter

/** @author Stephen Samuel */
class CoberturaXmlWriterTest
extends AnyFunSuite
with BeforeAndAfter
with OneInstancePerTest {
class CoberturaXmlWriterTest extends FunSuite {

def tempDir(): File = {
val dir = new File(IOUtils.getTempDirectory, UUID.randomUUID.toString)
Expand Down Expand Up @@ -227,16 +222,16 @@ class CoberturaXmlWriterTest
builder.setErrorHandler(new ErrorHandler() {
@Override
def error(e: SAXParseException): Unit = {
fail(e)
fail(e.getMessage(), e.getCause())
}
@Override
def fatalError(e: SAXParseException): Unit = {
fail(e)
fail(e.getMessage(), e.getCause())
}

@Override
def warning(e: SAXParseException): Unit = {
fail(e)
fail(e.getMessage(), e.getCause())
}
})
builder.parse(fileIn(dir))
Expand Down Expand Up @@ -329,8 +324,12 @@ class CoberturaXmlWriterTest

val xml = customXML.loadFile(fileIn(dir))

assert((xml \\ "coverage" \ "@line-rate").text === "0.33", "line-rate")
assert((xml \\ "coverage" \ "@branch-rate").text === "0.50", "branch-rate")
assertEquals((xml \\ "coverage" \ "@line-rate").text, "0.33", "line-rate")
assertEquals(
(xml \\ "coverage" \ "@branch-rate").text,
"0.50",
"branch-rate"
)

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,84 +4,83 @@ import java.io.File
import java.io.FileWriter
import java.util.UUID

import org.scalatest.freespec.AnyFreeSpec
import org.scalatest.matchers.should.Matchers
import munit.FunSuite
import scoverage.report.CoverageAggregator

class CoverageAggregatorTest extends AnyFreeSpec with Matchers {
class CoverageAggregatorTest extends FunSuite {

// Let current directory be our source root
private val sourceRoot = new File(".").getCanonicalPath()
private def canonicalPath(fileName: String) =
new File(sourceRoot, fileName).getCanonicalPath()

"coverage aggregator" - {
"should merge coverage objects with same id" in {
test("should merge coverage objects with same id") {

val source = canonicalPath("com/scoverage/class.scala")
val location = Location(
"com.scoverage.foo",
"ServiceState",
"com.scoverage.foo.Service.ServiceState",
ClassType.Trait,
"methlab",
source
)
val source = canonicalPath("com/scoverage/class.scala")
val location = Location(
"com.scoverage.foo",
"ServiceState",
"com.scoverage.foo.Service.ServiceState",
ClassType.Trait,
"methlab",
source
)

val cov1Stmt1 = Statement(location, 1, 155, 176, 4, "", "", "", true, 1)
val cov1Stmt2 = Statement(location, 2, 200, 300, 5, "", "", "", false, 1)
val coverage1 = Coverage()
coverage1.add(cov1Stmt1.copy(count = 0))
coverage1.add(cov1Stmt2.copy(count = 0))
val dir1 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
dir1.mkdir()
Serializer.serialize(
coverage1,
Serializer.coverageFile(dir1),
new File(sourceRoot)
)
val measurementsFile1 =
new File(dir1, s"${Constants.MeasurementsPrefix}1")
val measurementsFile1Writer = new FileWriter(measurementsFile1)
measurementsFile1Writer.write("1\n2\n")
measurementsFile1Writer.close()
val cov1Stmt1 = Statement(location, 1, 155, 176, 4, "", "", "", true, 1)
val cov1Stmt2 = Statement(location, 2, 200, 300, 5, "", "", "", false, 1)
val coverage1 = Coverage()
coverage1.add(cov1Stmt1.copy(count = 0))
coverage1.add(cov1Stmt2.copy(count = 0))
val dir1 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
dir1.mkdir()
Serializer.serialize(
coverage1,
Serializer.coverageFile(dir1),
new File(sourceRoot)
)
val measurementsFile1 =
new File(dir1, s"${Constants.MeasurementsPrefix}1")
val measurementsFile1Writer = new FileWriter(measurementsFile1)
measurementsFile1Writer.write("1\n2\n")
measurementsFile1Writer.close()

val cov2Stmt1 = Statement(location, 1, 95, 105, 19, "", "", "", false, 0)
val coverage2 = Coverage()
coverage2.add(cov2Stmt1)
val dir2 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
dir2.mkdir()
Serializer.serialize(
coverage2,
Serializer.coverageFile(dir2),
new File(sourceRoot)
)
val cov2Stmt1 = Statement(location, 1, 95, 105, 19, "", "", "", false, 0)
val coverage2 = Coverage()
coverage2.add(cov2Stmt1)
val dir2 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
dir2.mkdir()
Serializer.serialize(
coverage2,
Serializer.coverageFile(dir2),
new File(sourceRoot)
)

val cov3Stmt1 =
Statement(location, 2, 14, 1515, 544, "", "", "", false, 1)
val coverage3 = Coverage()
coverage3.add(cov3Stmt1.copy(count = 0))
val dir3 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
dir3.mkdir()
Serializer.serialize(
coverage3,
Serializer.coverageFile(dir3),
new File(sourceRoot)
)
val measurementsFile3 =
new File(dir3, s"${Constants.MeasurementsPrefix}1")
val measurementsFile3Writer = new FileWriter(measurementsFile3)
measurementsFile3Writer.write("2\n")
measurementsFile3Writer.close()

val cov3Stmt1 =
Statement(location, 2, 14, 1515, 544, "", "", "", false, 1)
val coverage3 = Coverage()
coverage3.add(cov3Stmt1.copy(count = 0))
val dir3 = new File(IOUtils.getTempPath, UUID.randomUUID.toString)
dir3.mkdir()
Serializer.serialize(
coverage3,
Serializer.coverageFile(dir3),
val aggregated =
CoverageAggregator.aggregatedCoverage(
Seq(dir1, dir2, dir3),
new File(sourceRoot)
)
val measurementsFile3 =
new File(dir3, s"${Constants.MeasurementsPrefix}1")
val measurementsFile3Writer = new FileWriter(measurementsFile3)
measurementsFile3Writer.write("2\n")
measurementsFile3Writer.close()

val aggregated =
CoverageAggregator.aggregatedCoverage(
Seq(dir1, dir2, dir3),
new File(sourceRoot)
)
aggregated.statements.toSet.size shouldBe 4
aggregated.statements.map(_.copy(id = 0)).toSet shouldBe
Set(cov1Stmt1, cov1Stmt2, cov2Stmt1, cov3Stmt1).map(_.copy(id = 0))
}
assertEquals(aggregated.statements.toSet.size, 4)
assertEquals(
aggregated.statements.map(_.copy(id = 0)).toSet,
Set(cov1Stmt1, cov1Stmt2, cov2Stmt1, cov3Stmt1).map(_.copy(id = 0))
)
}
}
Original file line number Diff line number Diff line change
@@ -1,29 +1,32 @@
package scoverage

import org.scalatest.freespec.AnyFreeSpec
import org.scalatest.matchers.should.Matchers
import munit.FunSuite

class CoverageMetricsTest extends AnyFreeSpec with Matchers {
class CoverageMetricsTest extends FunSuite {

"no branches with at least one invoked statement should have 100% branch coverage" in {
test(
"no branches with at least one invoked statement should have 100% branch coverage"
) {
val metrics = new CoverageMetrics {
override def statements: Iterable[Statement] =
Seq(Statement(null, 0, 0, 0, 0, null, null, null, false, 1))

override def ignoredStatements: Iterable[Statement] = Seq()
}
metrics.branchCount shouldBe 0
metrics.branchCoverage shouldBe 1.0 +- 0.0001
assertEquals(metrics.branchCount, 0)
assertEqualsDouble(metrics.branchCoverage, 1.0, 0.0001)
}

"no branches with no invoked statements should have 0% branch coverage" in {
test(
"no branches with no invoked statements should have 0% branch coverage"
) {
val metrics = new CoverageMetrics {
override def statements: Iterable[Statement] =
Seq(Statement(null, 0, 0, 0, 0, null, null, null, false, 0))

override def ignoredStatements: Iterable[Statement] = Seq()
}
metrics.branchCount shouldBe 0
metrics.branchCoverage shouldBe 0
assertEquals(metrics.branchCount, 0)
assertEquals(metrics.branchCoverage, 0.0)
}
}
Original file line number Diff line number Diff line change
@@ -1,18 +1,13 @@
package scoverage

import org.scalatest.BeforeAndAfter
import org.scalatest.OneInstancePerTest
import org.scalatest.funsuite.AnyFunSuite
import munit.FunSuite

/** @author Stephen Samuel */
class CoverageTest
extends AnyFunSuite
with BeforeAndAfter
with OneInstancePerTest {
class CoverageTest extends FunSuite {

test("coverage for no statements is 1") {
val coverage = Coverage()
assert(1.0 === coverage.statementCoverage)
assertEquals(1.0, coverage.statementCoverage)
}

test("coverage for no invoked statements is 0") {
Expand All @@ -31,7 +26,7 @@ class CoverageTest
0
)
)
assert(0 === coverage.statementCoverage)
assertEquals(0.0, coverage.statementCoverage)
}

test("coverage for invoked statements") {
Expand Down Expand Up @@ -92,6 +87,6 @@ class CoverageTest
0
)
)
assert(0.25 === coverage.statementCoverage)
assertEquals(0.25, coverage.statementCoverage)
}
}
Loading