我正在尝试将 IntelliJ 与播放框架 2.11 应用程序一起使用。
我为 IntelliJ 安装了 Play Framework 2 插件和 Scala 插件。
我创建了一个 Play 应用程序。我一直在努力在 IntelliJ 中编写和运行 Specs 2 测试。我的运行配置说在运行 Specs 2 测试时首先运行“make”,但它看起来不像我的测试类正在生成。一直告诉我它找不到规范。当我查看文件系统时,目标/测试类中没有代码,目录为空。此外,至少与运行 Play 控制台相比,构建似乎需要很长时间。
我想看看人们如何使用 Play with IntelliJ。您只是将 IntelliJ 用作编辑器,然后通过 Play 控制台运行所有内容吗?
有没有一种方法可以让您在 IntelliJ 中运行应用程序测试(让您的测试类运行)?
我在运行 Play 控制台和运行 ~test-only test=xxx.Spec 时从未遇到任何问题。它通常相当快。
这是我在尝试运行 Specs2 测试时在 IntelliJ 中遇到的异常:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.runSingleTest(JavaSpecs2Runner.java:130)
at org.jetbrains.plugins.scala.testingSupport.specs2.JavaSpecs2Runner.main(JavaSpecs2Runner.java:76)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.RuntimeException: can not create specification: test.ApplicationSpec
at scala.sys.package$.error(package.scala:27)
at org.specs2.specification.SpecificationStructure$.createSpecification(BaseSpecification.scala:96)
at org.specs2.runner.ClassRunner.createSpecification(ClassRunner.scala:64)
at org.specs2.runner.ClassRunner.start(ClassRunner.scala:35)
at org.specs2.runner.ClassRunner.main(ClassRunner.scala:28)
at org.specs2.runner.NotifierRunner.main(NotifierRunner.scala:24)
... 11 more