scala - How to make JUnit4 lifecycle callbacks work in ScalaTest with JUnitRunner? -
according scalatest documentation it's possible use junitrunner run tests. assumption was, if runs junitrunner, callback methods (i.e. methods marked @before or @after annotation should work well. apparently assumption wrong. i've created simple example demonstrate it:
import org.junit.before import org.junit.runner.runwith import org.scalatest.{funsuite, _} import org.scalatest.junit.junitrunner @runwith(classof[junitrunner]) class test extends funsuite { @before def before() = { println("before test") } test("nothing") { println("test started") } } if run example, you'll see test started line, not before test.
i'm aware of scalatest lifecycle callbacks, thing need make junit callbacks work somehow. want write test play 2.4 application , thing it's play.test.withbrowser class relies on junit callbacks. found workaround issue:
var testbrowser : testbrowser = _ before { new withbrowser { override def createbrowser(): unit = { super.createbrowser() testbrowser = browser } }.createbrowser() }
but believe it's quite ugly , suspect there better way.
so, question if it's possible make these junit lifecycle callbacks work scalatest? , if possible, how that?
you should able using junitsuite instead of funsuite. documentation here:
http://www.scalatest.org/getting_started_with_junit_4_in_scala http://doc.scalatest.org/2.2.4/index.html#org.scalatest.junit.junitsuite
Comments
Post a Comment