Play 2 を使用してプロジェクトをセットアップしていますが、Eclipse リモート デバッグを使用して既に webapp をデバッグできます。ただし、テストに沿ってブレークポイントも使用したいと思います。単体テストのリモートデバッグをセットアップする方法を知っている人はいますか?
3 に答える
これは、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 を構成する必要があります。また、テストを実行するたびにデバッガーを再接続する必要があり、不便な場合があります。
私はEclipseまたはむしろscala ideを使用しています
「play」を実行する代わりに、このコマンド「play debug」を実行すると、play は次のメッセージを出力します。
Listening for transport dt_socket at address: 9999
play の通常の $ プロンプトが表示されます。次に、このコマンド「実行」を入力します
eclipse から、ブレークポイントを設定し、[実行] -> [構成のデバッグ] をクリックします。左側で [リモート Java アプリケーション] を探し、[新しい構成の起動] をクリックします (左上の小さなアイコンは、「新しいドキュメント」のように見えます)。アイコン)。デフォルトのポートは 8000 で、それを 9999 に変更し、マシンを変更します。ほとんどの場合、localhost を使用するでしょう。[デバッグ]ボタンをクリックします
それはそれを行う必要があります。http://localhost:9000
ブラウザに法線をロードするだけで、アプリケーションがブレークポイントに到達するのを待つだけです。