9

Play 2 を使用してプロジェクトをセットアップしていますが、Eclipse リモート デバッグを使用して既に webapp をデバッグできます。ただし、テストに沿ってブレークポイントも使用したいと思います。単体テストのリモートデバッグをセットアップする方法を知っている人はいますか?

4

3 に答える 3

12

これは、Play (SBT) フォークがテスト用に JVM を分離し、リモート デバッグに必要なオプションがないために発生しています。少なくとも 2 つのオプションがあります。新しい JVM のフォークを無効にする、テストに使用される JVM に追加のオプションを渡す。

フォークを無効にするには、Build.scala を変更して を追加fork in (Test) := falseします。以下の完全な Build.scala の例を参照してください。

import sbt._
import play.Project._

object ApplicationBuild extends Build {

  val appName         = "so1"
  val appVersion      = "1.0-SNAPSHOT"

  val appDependencies = Seq(
    // Add your project dependencies here,
    javaCore,
    javaJdbc,
    javaEbean
  )

  val main = play.Project(appName, appVersion, appDependencies).settings(
    // Add your own project settings here
    Keys.fork in (Test) := false
  )
}

追加のオプションを渡すには、次のコードを使用できるように追加します。

  val main = play.Project(appName, appVersion, appDependencies).settings(
    Keys.javaOptions in (Test) += 
    "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=9998"
  )

テストにアタッチするには、ポート 9998 を使用するように IDE を構成する必要があります。また、テストを実行するたびにデバッガーを再接続する必要があり、不便な場合があります。

于 2013-04-10T08:39:32.983 に答える
0

私はEclipseまたはむしろscala ideを使用しています

「play」を実行する代わりに、このコマンド「play debug」を実行すると、play は次のメッセージを出力します。

Listening for transport dt_socket at address: 9999

play の通常の $ プロンプトが表示されます。次に、このコマンド「実行」を入力します

eclipse から、ブレークポイントを設定し、[実行] -> [構成のデバッグ] をクリックします。左側で [リモート Java アプリケーション] を探し、[新しい構成の起動] をクリックします (左上の小さなアイコンは、「新しいドキュメント」のように見えます)。アイコン)。デフォルトのポートは 8000 で、それを 9999 に変更し、マシンを変更します。ほとんどの場合、localhost を使用するでしょう。[デバッグ]ボタンをクリックします

それはそれを行う必要があります。http://localhost:9000ブラウザに法線をロードするだけで、アプリケーションがブレークポイントに到達するのを待つだけです。

于 2013-03-14T03:45:52.960 に答える