Я использую версию eclipse: 3.7.2 с Scala IDE для Eclipse 2.1.0.nightly-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, но когда я пытаюсь запустить в затмении, я получаю
Class not found model.GibberishTestSuite
java.lang.ClassNotFoundException: model.GibberishTestSuite
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
Если я поменяю пакет на
package model
, так что иерархия каталогов и имя пакета совпадают с , тогда я могу запустить модульный тест в eclipse. В scala допустимо, чтобы структура пакета и структура каталога не совпадали. Однако, несоответствие, похоже, сбивает с толку затмение или плагин.
Я что-то не так делаю? Я пропускаю некоторые нюансы конфигурации? Эта функция языка Scala не поддерживается в Eclipse? Будет ли он поддерживаться в какой-то момент?
Спасибо.