Playフレームワーク2.11アプリケーションでIntelliJを使用しようとしています。
Play Framework 2プラグインとIntelliJ用のScalaプラグインをインストールしました。
Playアプリケーションを作成しました。私はIntelliJで仕様2テストの作成と実行に苦労しています。実行構成では、仕様2テストの実行時に最初に「make」を実行するように指示されていますが、テストクラスが生成されているようには見えません。仕様が見つからなかったと私に言い続けます。ファイルシステムを見ると、target/test-classesにコードはなく、ディレクトリは空です。さらに、少なくとも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
更新:IntelliJ IDEAの新しいバージョンでは、play/activatorからモジュールを作成する必要がなくなりました。 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
2。IDEモジュールを作成します
プレイコンソールを起動します。
cd newapp
play
モジュールを作成します。
idea with-sources=yes
exit
。IDEの構成
4。テストを実行する
テストディレクトリの下でApplicationSpecを選択し、Run 'ApplicationSpec'をクリックしますコンテキストメニュー。コンパイルされたテンプレートが見つからないというエラーが表示されるはずです。これは、IDEはテンプレートをコンパイルしませんが、これはアプリケーションを1回実行することで実行できます。また、ポイント5に従ってテストを再実行してください。
5。アプリケーションの実行
コントローラーを選択して、コンテキストメニューからPlay 2アプリの実行をクリックします。これにより、アドレスでアプリケーションが開始されます:http://localhost:9000/
。
6。依存関係の更新
アプリケーションの依存関係を更新する場合は、IDEにこの変更について伝える必要があります。また、play updateコマンドを実行した後IDEを閉じて、プロジェクトディレクトリからいくつかのファイルを削除する必要があります。play idea
コマンドは、ファイルを削除する前に、playプロジェクトに二重の依存関係を取得します。
次の手順を実行して、依存関係を更新します。
update
タスクを実行します.idea_modules
および.idea/libraries
ディレクトリidea with-sources=yes
プレイコンソールのコマンドPlayコンソールには、 sbt-idea という名前のsbtプラグインのフォークが含まれています。プレイの分岐点は元のプラグインよりも少し遅れており、play idea
を実行するとIntelliJで問題が発生します。問題のない元のプラグインを使用できます。 playプロジェクトでこのプラグインを使用するには、必要があります。
1. project/plugins.sbt
ファイルに次の行を追加します(中央の空白行が必要です)
resolvers += "Sonatype snapshots" at "http://oss.sonatype.org/content/repositories/snapshots/"
addSbtPlugin("com.github.mpeltonen" % "sbt-idea" % "1.5.1")
2. Playコンソールからgen-idea
を実行します。
IntellijIDEA(バージョン12.0.4)は通常、Play Frameworkコードエディターにのみ使用しました。
そして、私は通常Play SBTコンソールでアプリを実行してデバッグします。それは合理的な高速です。ただし、コンソールでplay
コマンドを実行すると、loading-project-infoタスクに時間がかかりすぎる(10分近く)ことがあることがわかりました。これが時々起こる理由はわかりませんが、全体的にPlay SBTコンソールを使用するのが私の選択です。
通常はshould-not-be-the-problem-thingsとして解釈されますerrorのように解釈されます:
Play Frameworkの学習を始めたとき、私はそのような問題に直面していました。そのため、最後に、Play SBTコンソールを使用してアプリを実行およびデバッグすることにしました。
質問2には答えられません。申し訳ありませんが、今まではplayアプリケーションの実行とデバッグのみを試みました。テスト目的で、Play 2.xを試したことはありません。