sbtプロジェクトを作成しeclipseでテストする

ちょっとハマったのでメモ

sbtプロジェクトを作成したのちに、eclipse上でJunitテストをできる環境を構築します。

Eclipseで右クリックからの scala Junit Testができるので非常に便利 

まずディレクトリおよびファイルを以下の構成で作成します

$ 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
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
sbt.version=0.13.8
  • plugins.sbt
addSbtPlugin("com.typesafe.sbteclipse" % "sbteclipse-plugin" % "4.0.0")
  • Model.scala
case class Model(ival:Int,sval:String)
  • ModelSpec.scala
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ようにファイルプロジェクトファイルを作成してやります 

$ sbt eclipse

.project .classpath .settingsが作成され、依存するjarファイルがlib_managedに取り込まれいるのが確認できます

このままeclipseで読み込んで、ModelSpec.scalaを右クリックからのScalaJunitTestでテストできます。