В Scala пакеты не обязательно должны соответствовать папкам. И если бы не было необходимости в инструментальных средствах, я бы предпочел исключить излишне избыточный префикс организации пакета, чтобы обеспечить более короткие пути.
Моя проблема в том, что плагин Eclipse JUnit, похоже, работает с папками, а не с classpath. Когда я помещаю свои тестовые классы Scala в папки, соответствующие пакету, все работает отлично. Однако если я поставлю их так, как мне хотелось бы, я получу исключение ClassNotFoundException.
Скажите, что мой префикс пакета - org.myorganisation.myproduct для всех классов в проекте. Тогда я хотел бы иметь папки, как
src/test/scala/domainpackage1/
вместо
src/test/scala/org/myorganisation/myproduct/domainpackage1
но если я поставлю тестовый класс, похожий на:
package org.myorganisation.myproduct;
package domainpackage1
...
@RunWith(classOf[JUnitRunner])
class DomainClass1Spec extends FeatureSpec with GivenWhenThen {
...
}
в папке
src/test/scala/domainpackage1
Я получаю
java.lang.ClassNotFoundException: domainpackage1.DomainClass1Spec
Похоже, что плагин JUnit ищет местоположение источника и ищет файл класса, соответствующий этому, а не находит класс более стабильным способом.
Я имею в виду, что должна быть возможность найти выходные данные (.class) из текущей позиции в модуле компиляции (.scala), верно?