在Intellij 14中运行specs2测试时出现java.lang.ClassNotFoundException: IntegrationSpec错误

5

我的做法是:

  1. 安装Intellij 14(也可以是Intellij 13,但问题相同)
  2. 为Intellij安装Scala 1.0插件(支持Scala、SBT、SSP、HOCON和Play 2)。
  3. 创建一个新的Play 2.x项目
  4. 从Intellij 14运行该项目(通过localhost:9000打开成功)
  5. 运行默认测试(ApplicationSpec、IntegrationSpec)时出现下面的错误信息,导致无法运行。

为什么运行默认测试时test-classes不会生成?

配置有问题吗(请参见http://prntscr.com/53nk41http://prntscr.com/53nkj7)?

感谢任何建议!

错误信息:

Testing started at 18:31 ...
java.lang.ClassNotFoundException: IntegrationSpec
java.net.URLClassLoader$1.run(URLClassLoader.java:372)
java.net.URLClassLoader$1.run(URLClassLoader.java:361)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:360)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
org.specs2.reflect.Classes$class.loadClassOf(Classes.scala:206)
org.specs2.reflect.Classes$.loadClassOf(Classes.scala:213)
org.specs2.reflect.Classes$$anonfun$loadClassEither$1.apply(Classes.scala:197)
org.specs2.reflect.Classes$$anonfun$loadClassEither$1.apply(Classes.scala:197)
org.specs2.control.Exceptions$class.trye(Exceptions.scala:92)
org.specs2.control.Exceptions$.trye(Exceptions.scala:108)
org.specs2.reflect.Classes$class.loadClassEither(Classes.scala:197)
org.specs2.reflect.Classes$.loadClassEither(Classes.scala:213)
org.specs2.reflect.Classes$class.tryToCreateObjectEither(Classes.scala:90)
org.specs2.reflect.Classes$.tryToCreateObjectEither(Classes.scala:213)
org.specs2.reflect.Classes$class.tryToCreateObject(Classes.scala:70)
org.specs2.reflect.Classes$.tryToCreateObject(Classes.scala:213)
org.specs2.specification.SpecificationStructure$$anonfun$createSpecificationOption$1.apply(BaseSpecification.scala:107)
org.specs2.specification.SpecificationStructure$$anonfun$createSpecificationOption$1.apply(BaseSpecification.scala:107)
scala.Option.orElse(Option.scala:257)
org.specs2.specification.SpecificationStructure$.createSpecificationOption(BaseSpecification.scala:107)
org.specs2.specification.SpecificationStructure$.createSpecification(BaseSpecification.scala:94)
org.specs2.runner.ClassRunner.createSpecification(ClassRunner.scala:64)
org.specs2.runner.ClassRunner.start(ClassRunner.scala:35)
org.specs2.runner.NotifierRunner.start(NotifierRunner.scala:25)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.runSingleTest(JavaSpecs2Runner.java:92)
org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.main(JavaSpecs2Runner.java:68)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
can not create specification: IntegrationSpec
java.lang.ClassNotFoundException: ApplicationSpec
java.net.URLClassLoader$1.run(URLClassLoader.java:372)
java.net.URLClassLoader$1.run(URLClassLoader.java:361)
java.security.AccessController.doPrivileged(Native Method)
java.net.URLClassLoader.findClass(URLClassLoader.java:360)
java.lang.ClassLoader.loadClass(ClassLoader.java:424)
sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
java.lang.ClassLoader.loadClass(ClassLoader.java:357)
org.specs2.reflect.Classes$class.loadClassOf(Classes.scala:206)
org.specs2.reflect.Classes$.loadClassOf(Classes.scala:213)
org.specs2.reflect.Classes$$anonfun$loadClassEither$1.apply(Classes.scala:197)
org.specs2.reflect.Classes$$anonfun$loadClassEither$1.apply(Classes.scala:197)
org.specs2.control.Exceptions$class.trye(Exceptions.scala:92)
org.specs2.control.Exceptions$.trye(Exceptions.scala:108)
org.specs2.reflect.Classes$class.loadClassEither(Classes.scala:197)
org.specs2.reflect.Classes$.loadClassEither(Classes.scala:213)
org.specs2.reflect.Classes$class.tryToCreateObjectEither(Classes.scala:90)
org.specs2.reflect.Classes$.tryToCreateObjectEither(Classes.scala:213)
org.specs2.reflect.Classes$class.tryToCreateObject(Classes.scala:70)
org.specs2.reflect.Classes$.tryToCreateObject(Classes.scala:213)
org.specs2.specification.SpecificationStructure$$anonfun$createSpecificationOption$1.apply(BaseSpecification.scala:107)
org.specs2.specification.SpecificationStructure$$anonfun$createSpecificationOption$1.apply(BaseSpecification.scala:107)
scala.Option.orElse(Option.scala:257)
org.specs2.specification.SpecificationStructure$.createSpecificationOption(BaseSpecification.scala:107)
org.specs2.specification.SpecificationStructure$.createSpecification(BaseSpecification.scala:94)
org.specs2.runner.ClassRunner.createSpecification(ClassRunner.scala:64)
org.specs2.runner.ClassRunner.start(ClassRunner.scala:35)
org.specs2.runner.NotifierRunner.start(NotifierRunner.scala:25)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.runSingleTest(JavaSpecs2Runner.java:92)
org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.main(JavaSpecs2Runner.java:68)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
can not create specification: ApplicationSpec
Process finished with exit code 0

1
一样的问题。同样是IntelliJ,同样的错误。 - Chris Beach
相信这个问题现在已经解决了。请查看下面的答案。 - Chris Beach
是的,它已经解决了 :) - Rdey
@Rdey,你是怎么解决的?更新了插件版本吗?是哪一个版本? - Paul Draper
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Rdey
显示剩余3条评论
1个回答

1

Scala的支持可能不是最好的(甚至scalac对Scala的支持也不是很好),但我还没有找到比它更好的Scala集成开发环境。 - Paul Draper

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接