2016-05-10 15 views
2

端末sbt -jvm-debug 9999で次のコマンドを実行し、Intellij 15.0.4-1のデフォルト値でリモートデバッグを開始します。次に、sbtタスクrunを実行し、ブレークポイントが期待通りに機能します。 testタスクを実行すると、代わりに同じコードが実行されたにもかかわらず、デバッグはもう機能しません。SBTリモートデバッグはintellijでは動作しますが、テスト実行時には動作しません

play-scala活性化種子をPlay Framework 2.4と使用する。テストはspec2で書かれています。 誰かが私が間違っているかもしれないアイデアはありますか?ここで

は私のコードです:

object DebugTest { 
    def helloWorld(): Unit ={ 
    println("Oh my") 
    } 
} 

クラスApplicationSpec.scala

クラスDebugTest.scala

import org.specs2.mutable._ 

import play.api.test._ 
import play.api.test.Helpers._ 

class ApplicationSpec extends Specification { 

    "Application" should { 
    "just print oh my in console" in new WithApplication{ 
     DebugTest.helloWorld() 
    } 
    } 
} 

ファイル

lazy val root = (project in file(".")).enablePlugins(PlayScala) 

scalaVersion := "2.11.7" 

libraryDependencies ++= Seq(jdbc, 
    ws, 
    specs2 % Test, 
    "org.webjars.bower" % "adminlte" % "2.3.3", 
    "org.pac4j" % "play-pac4j" % "2.2.0-SNAPSHOT", 
    "org.pac4j" % "pac4j-http" % "1.9.0-SNAPSHOT", 
    "com.typesafe.play" % "play-cache_2.11" % "2.4.6" 
) 

resolvers += "scalaz-bintray" at "http://dl.bintray.com/scalaz/releases" 
resolvers += "Sonatype snapshots repository" at "https://oss.sonatype.org/content/repositories/snapshots/" 

routesGenerator := InjectedRoutesGenerator 

fork in run := true 
fork in test := false 

ファイルtest.sbt build.sbt

fork in test := false 

答えて

4

プレイのsbtプラグインは、次の設定を定義します。

fork in Test := true 

、あなたのテストを起動しているときに、別のJVMが開始される(リモートデバッグなし)。

あなたは自分のbuild.sbtに追加する必要があります。

fork in Test := false 

あなたも、それだけで行を含むtest.sbtファイルを作成して、ソース管理から、それを無視することができます。

デバッグ中にのみ使用してください。その後、デフォルトの動作に戻ってください。同じsbtセッションで複数回テストを起動したときに予期しない結果が生じることがあります。

+0

私の質問が更新されました。私は追加のtest.sbtを追加するあなたの提案を試みたが、まだデバッグが機能しません。 –

+0

私のエラーは 'Test'の代わりに' test'を書いたことです。すべてが今働きます!どうもありがとうございます。 –

関連する問題