尝试运行Scala测试,获取java.lang.ClassNotFoundException:org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner

时间:2016-09-19 07:03:29

标签: scala intellij-idea scalatest

我在IntelliJ IDEA 2016.2中有一个Gradle项目。每次我在项目中运行Scala测试时,都会遇到以下异常:

Exception in thread "main" java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.CommandLineWrapper.main(CommandLineWrapper.java:48)
Caused by: java.lang.ClassNotFoundException: org.jetbrains.plugins.scala.testingSupport.scalaTest.ScalaTestRunner
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:264)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:123)
    ... 5 more

我检查了依赖项的版本,并且我已经将Scala SDK添加到项目模块中。我还将Scala插件添加到Gradle文件中,并在IntelliJ IDEA中安装了Scala插件。此外,测试在我的同事的计算机上运行没有错误,所以我们不知道错误是什么。

1 个答案:

答案 0 :(得分:0)

找到原因:我的用户目录名称中有一个突出显示的字母,IDEA总是尝试在该目录下使用AppData中的某个文件。我已经更改了idea.properties文件,但它对该文件没有任何影响。

可能的解决方法是使用gradle(或maven / sbt / etc.)。在我的例子中,我使用gradle,我只是将@RunWith(classOf[JUnitRunner])添加到我想要测试的scala类中,然后执行gradle的测试任务。