我在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插件。此外,测试在我的同事的计算机上运行没有错误,所以我们不知道错误是什么。
答案 0 :(得分:0)
找到原因:我的用户目录名称中有一个突出显示的字母,IDEA总是尝试在该目录下使用AppData中的某个文件。我已经更改了idea.properties
文件,但它对该文件没有任何影响。
可能的解决方法是使用gradle(或maven / sbt / etc.)。在我的例子中,我使用gradle,我只是将@RunWith(classOf[JUnitRunner])
添加到我想要测试的scala类中,然后执行gradle的测试任务。