如何使Eclipse检测到Scala JUnit测试包与文件夹不匹配?

时间:2011-01-26 16:00:32

标签: eclipse scala junit

在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插件正在查看源位置并查找与之匹配的类文件,而不是以更稳定的方式查找类。

我的意思是,应该可以从编译单元(.scala)中的当前位置找到输出(.class),对吧?

1 个答案:

答案 0 :(得分:1)

这是Eclipse中的一个已知问题:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=16209

标记为WONTFIX。但也许您应该对它进行评论并指出Scala的问题...