nop*_*lay 34 scala intellij-idea playframework
我试图使用IntelliJ与播放框架2.11应用程序.
我安装了Play Framework 2插件和IntelliJ的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
Run Code Online (Sandbox Code Playgroud)
akk*_*kie 56
更新:在IntelliJ IDEA的较新版本中,不再需要从播放/激活器创建模块.IntelliJ IDEA现在对SBT项目提供了非常好的支持.如果存在,删除项目中的所有与想法相关的目录.然后在IntelliJ IDEA中单击文件 - >打开并选择build.sbt文件.就这样.
IntelliJ IDEA与Play Framework 2有很好的集成.有时它会卡住,但大部分时间都会运行.我用它来运行(单个,全部)测试,启动或调试播放应用程序并编辑我的代码(o;这一切都来自IDE内部,没有sbt控制台.
这是一个包含最重要步骤的简短教程.目前我使用IntelliJ IDEA 12.1和最新的Play Framework 2和Scala插件.
1.创建一个新的应用程序
play new myapp
Run Code Online (Sandbox Code Playgroud)
2.创建IDE模块
启动播放控制台:
cd newapp
play
Run Code Online (Sandbox Code Playgroud)
创建模块:
idea with-sources=yes
exit
Run Code Online (Sandbox Code Playgroud)
3.配置IDE
4.运行测试
选择测试目录下的ApplicationSpec,然后从上下文菜单中单击Run'ApplicationSpec'.您应该收到无法找到已编译模板的错误.这是因为IDE不编译模板,但这可以通过运行一次应用程序来完成.也请按照第5点,然后再次运行测试.
5.运行应用程序
选择一个控制器,然后从上下文菜单中单击Run Play 2 App.这应该在地址上启动应用程序:http://localhost:9000/
.
6.更新依赖项
如果更新应用程序依赖项,则必须告知IDE有关此更改的信息.此外,在运行play update命令后,您必须关闭IDE并从项目目录中删除一些文件.如果play idea
在删除文件之前执行该命令,则会在播放项目中获得双重依赖关系.
执行以下步骤以更新依赖项:
update
从播放控制台运行任务.idea_modules
和.idea/libraries
目录idea with-sources=yes
在播放控制台中运行该命令