我正在嘗試將IntelliJ與Play Framework 2.11應用程序一起使用。如何在Play Framework和Scala中使用IntelliJ
我安裝了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。它通常是相當快的。
這裏是我在的IntelliJ獲得異常,當我嘗試運行我的Specs2測試:
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
到目前爲止,這工作!非常感謝!我有一個棘手的問題,當你運行一個測試時,它會加載項目信息和一切,這需要很長時間。有什麼方法可以更快地運行測試嗎?我的猜測是它需要很長時間,因爲它在啓動測試之前運行「Make」。任何指針? – noplay 2013-04-24 23:47:15
還有一個問題,它看起來像插件創建了一堆XML文件,這些文件將這些類硬編碼到Play安裝的位置。我猜如果不止一個人在項目中工作,你需要確保每個人都有安裝在同一文件路徑上的遊戲? – noplay 2013-04-24 23:56:48
到目前爲止我的朋友很好。爲了避免運行測試時的編譯時間過長,我在IntelliJ中啓動了SBT控制檯並運行〜test:compile。然後,每次我做一個代碼更改代碼重新編譯QUICKLY,無論是應用程序代碼還是測試代碼。在我的運行配置中,我在測試啓動之前刪除了「Make」。 BDD/TDD的速度非常快。 100萬謝謝你的答案! – noplay 2013-04-25 00:35:33