Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to make scalatest generate html report through sbt

The way to do this for specs2 based test in sbt is

(testOptions in Test) += Tests.Argument(TestFrameworks.Specs2, "html")

but how about scalatest? I've done lots of Google search, but cannot find a good explanation/solution.

like image 598
Sheng Avatar asked Sep 10 '13 16:09

Sheng


2 Answers

so two things I need to do...

I. use any scalatest artifact after 2.0.M5b. For me, I added this dependency,

org.scalatest" %% "scalatest" % "2.0.M6" % "test->*" excludeAll ( ExclusionRule(organization="org.junit", name="junit") )

"test->*" is necessary, otherwise dependencies needed to generate the html wont be downloaded. (There must be a better way than this)

II. In build.sbt, add

(testOptions in Test) += Tests.Argument(TestFrameworks.ScalaTest, "-u", "target/report")

like image 82
Sheng Avatar answered Nov 14 '22 08:11

Sheng


beware with that setting.

org.scalatest" %% "scalatest" % "2.0.M6" % "test->*

It pulls out some junit:junit:3.8.1 dependency which ivy fails to resolve. see this bug

this is a better way to do it in ScalaTest 2.0

testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-u", "target/test-reports")

This works well in Jenkins

like image 35
fracca Avatar answered Nov 14 '22 09:11

fracca