Skip to main content

Hi, I'm Mariano Guerra, below is my blog, if you want to learn more about me and what I do check a summary here: marianoguerra.github.io or find me on twitter @warianoguerra or Mastodon @marianoguerra@hachyderm.io

Scala, sbt, scalatest and scct for code coverage testing

Scala, sbt, scalatest and scct for code coverage testing

simple guide on how to setup a scala project using sbt and sbt-scct plugin to have code coverage on tests using scalatests.

the code for this is at my repo here:

https://github.com/marianoguerra/me/tree/master/code/scala/sbt-scalatest-scct

ingredients

  • scala 2.9.1
  • sbt 0.11.2
  • sbt-scct 0.2
  • scalatest 1.6.1

how to

create a file called build.sbt if you don't have one already, you need to add the following parameters (you can use build.sbt as a starting point)
scala version:

scalaVersion := "2.9.1"

load scct settings:

seq(ScctPlugin.scctSettings: _*)

add scalatest to your dependencies:

libraryDependencies ++= Seq(
"org.scalatest" % "scalatest_2.9.0" % "1.6.1" % "test"
)

create a file called project/plugins.sbt if you don't have one already and add the following:

resolvers += Classpaths.typesafeResolver

addSbtPlugin("ch.craven" % "scct-plugin" % "0.2")

resolvers ++= Seq(
"scct-repo" at "http://dimbleby.github.com/maven",
Resolver.url("Typesafe repository", new java.net.URL("http://typesafe.artifactoryonline.com/typesafe/ivy-releases/"))(Resolver.defaultIvyPatterns)

then create some tests like the one under src/test/scala/ar/com/marianoguerra/CalcSpec.scala

then start sbt and run:

coverage:doc

after the test ran open the report with your browser:

firefox target/scala-2.9.1/coverage-report/index.html

and you are done!

note that I left one if branch without testing so you can see how it looks.