質問

私はEclipseバージョンを使用しています:3.7.2 Eclipse 2.1.0.nightly-2_09-201203121521521-6J8582E。 Javaバージョンは1.6.0_31です。 OSは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")
  }
}
.

グレードルピーとソースパスはこのようになります(パッケージがディレクトリ階層と一致しないことに注意してください):

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

EclipseとGradleは、対応するクラスファイルを生成します。

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

これは卒業を通して細かく運ばれます、しかし私が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またはPluginを混同しているようです。

私は何か悪いことをしていますか?私はいくつかの構成ニュアンスがありませんか?このScala言語機能はEclipseではサポートされていませんか?ある時点でサポートされますか?

ありがとうございました。

役に立ちましたか?

解決

これは、スカラ/スカライド問題ではなくEclipse(JDT)の問題です。

Eclipseに対して発生したバグがありました(パッケージエクスプローラツリーが宣言されたパッケージを一致させる)、しかし基本的に、Eclipseは階層がパッケージ名と一致すると想定しています。これは最終的にはScala-IDEで固定されますが、JDTへの依存関係を削除するには、モデルを変更する必要があります。これを修正したい場合は、上記の問題に投票を追加することをお勧めします。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top