ちょっとハマったのでメモ
sbtプロジェクトを作成したのちに、eclipse上でJunitテストをできる環境を構築します。
Eclipseで右クリックからの scala Junit Testができるので非常に便利
まずディレクトリおよびファイルを以下の構成で作成します
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | $ tree . ├── build.sbt ├── project │ ├── build.properties │ └── plugins.sbt └── src ├── main │ ├── resources │ └── scala │ └── Model.scala └── test ├── resources └── scala └── ModelSpec.scala 8 directories, 5 files |
次にファイルの中を記述します
- build.sbt
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | name := "sample" version := "1.0" scalaVersion := "2.11.6" javaOptions in run += "-Djava.library.path=" + System.getProperty("java.library.path") + ":lib" libraryDependencies ++= Seq( "org.specs2" %% "specs2-core" % "3.6.2" % "test", "org.specs2" % "specs2-junit_2.11" % "3.6.2" ) scalacOptions in Test ++= Seq("-Yrangepos") retrieveManaged := true // lib_managedへjarをコピーする |
- build.properties
1 | sbt.version=0.13.8 |
- plugins.sbt
1 | addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0") |
- Model.scala
1 | case class Model(ival:Int,sval:String) |
- ModelSpec.scala
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import org.specs2.mutable._ import org.specs2.runner.JUnitRunner import org.junit.runner.RunWith @RunWith(classOf[JUnitRunner]) class ModelSpec extends Specification { "model" should { "value check" in { val model=new Model(1,"s") model.ival mustEqual 1 model.sval mustEqual "s" } } } |
Eclipseようにファイルプロジェクトファイルを作成してやります
1 | $ sbt eclipse |
.project .classpath .settingsが作成され、依存するjarファイルがlib_managedに取り込まれいるのが確認できます
このままeclipseで読み込んで、ModelSpec.scalaを右クリックからのScalaJunitTestでテストできます。