我正在使用Eclipse版本:3.7.2使用Scala IDE for Eclipse 2.1.0.Tearty-2_09-201203121521-6E8582E。 Java版本为1.6.0_31。操作系统是Ubuntu 11.10。

我已经寻找解决这个问题的解决方案,但我还没有找到一个问题。我希望我错过了没有明显的答案。

我有这个类(注意包):

package model.x.y

import org.scalatest.FunSuite
import org.junit.runner.RunWith
import org.scalatest.junit.JUnitRunner

@RunWith(classOf[JUnitRunner])
class GibberishTestSuite extends FunSuite {
  test("Check Gibberish") {
    assert("blah" === "blah")
  }
}
.

我也使用gradle,源路径看起来像这样(注意,包与目录层次结构)不匹配:

.../src/test/scala/model/GibberishTest.scala
.

eclipse和gradle生成相关的类文件:

bin/model/x/y/GibberishTestSuite.class
build/classes/test/model/x/y/GibberishTestSuite.class
.

这通过gradle罚款,但是当我尝试在Eclipse中运行时,我得到

Class not found model.GibberishTestSuite
java.lang.ClassNotFoundException: model.GibberishTestSuite
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
.

如果我将包更改为

package model
.

使目录层次结构和包名称匹配,然后我能够在Eclipse中运行单元测试。在Scala中,包结构和目录结构不匹配是合法的。但是,不匹配似乎是令人困惑的日食或插件。

我做错了什么?我缺少一些配置细胞吗? Eclipse不支持这个Scala语言功能吗?会在某些时候得到支持吗?

谢谢。

有帮助吗?

解决方案

这是一个Eclipse(JDT)问题而不是Scala / Scala-IDE问题。

对Eclipse提出了一个错误(包资源管理器树确实匹配声明包),但基本上,Eclipse假定层次结构与包名称匹配。最终将在Scala-IDE中修复,但需要更改模型,以消除对JDT的依赖项。如果您需要解决此问题,请将投票添加到上述问题是一个好主意。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top