在Scala IDE for Eclipse中安装scalatest

时间:2015-04-05 20:56:43

标签: eclipse scala scalatest scala-ide sbteclipse

我已经安装了Eclipse Luna。然后我通过Help安装了Scala IDE - > Install new software并添加包含here链接的软件网站。然后我使用this迷你指南安装了sbt 0.13和sbteclipse并创建了eclipse项目。然后我通过将它添加到我的build.sbt安装(kindda)scalatest。现在它看起来像这样:

val scalaTest = "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"

lazy val commonSettings = Seq(
  scalaVersion := "2.11.6"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    libraryDependencies += scalaTest
  )

然后我从this example创建了一个测试。名为FirstSpec.scala的文件位于testProject/src/test/scala-2.11/testProject/。所以这是一个问题:eclipse似乎没有看到scalaTest。 import org.scalatest._的第二行带有下划线红色,错误说明为object scalatest is not a member of package org。而且,在this guide之后,在选择我的测试类时,我没有看到选项Run As -> ScalaTest - Suite。 同时,当我在我的测试项目中启动sbt会话并输入test命令时,一切顺利。测试启动并通过。

所以我的问题是:

  • 为什么eclipse如果把它放在build.sbt libraryDependencies中,它就不会看到最新的?那么libraryDependencies的重点是什么?
  • 为什么sbt test运行测试没有问题?如果sbt看到scalatest,为什么eclipse可以'

1 个答案:

答案 0 :(得分:0)

哇,this one解决了我的问题。因此,build.sbt示例可能类似于:

import com.typesafe.sbteclipse.plugin.EclipsePlugin._

EclipseKeys.withSource := true

val scalaTest = "org.scalatest" % "scalatest_2.11" % "2.2.4" % "test"
val jodaConvert = "org.joda" % "joda-convert" % "1.7"
val joda = "joda-time" % "joda-time" % "2.7"

lazy val commonSettings = Seq(
  scalaVersion := "2.11.6"
)

lazy val root = (project in file(".")).
  settings(commonSettings: _*).
  settings(
    libraryDependencies += scalaTest
  ).
  settings(
    libraryDependencies += jodaConvert
  ).
  settings(
    libraryDependencies += joda
  )

然后这样做:

rm -rf  ~/.ivy2/cache/

sbt update-classifiers

sbt eclipse