Я настраиваю проект с использованием Play 2, и я уже могу отлаживать webapp, используя удаленную отладку eclipse. Хотя, я также хотел бы использовать точки останова на моих тестах. Кто-нибудь знает, как удаленная отладка тестирования модулей установки?Как отлаживать тесты с Play! 2.0
ответ
Это происходит после того, как Play (SBT) разворачивает отдельную JVM для тестов без параметров, необходимых для удаленной отладки. У вас есть как минимум два варианта: отключить вилку новой 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"
)
Вам необходимо настроить вашу среду IDE для использования порта 9998 для присоединения к испытаниям. Кроме того, вам нужно будет повторно подключать отладчик каждый раз, когда вы запускаете тесты, что может быть неудобно.
Спасибо за ваш ответ. Я больше не использую игру, поэтому я не знаю, правильный ли этот ответ, и у меня нет времени попробовать. Если у него будет больше очков, я позже помету это как принятое. –
Я могу подтвердить, что он работает (Play 2.1.0) – Skyr
. Лучше всего предотвратить тест в fork, как описано [здесь] (http://stackoverflow.com/a/16742485/508064). Это позволяет использовать одно и то же соединение как для приложения, так и для теста, а соединение открыто во время запуска игровой консоли, поэтому вам не нужно повторно подключать отладчик. – roterl
я использую затмение или скорее Scala язь
вместо запуска «играть» я запустить эту команду «играть отлаживать» тогда играть будет печатать это сообщение:
Listening for transport dt_socket at address: 9999
нормальный $ проворная для игры. затем введите эту команду «Выполнить»
от затмения, я установить контрольную точку и нажмите кнопку «Выполнить -> Debug Configurations ...» искать «Remote Java Application» на левом и нажмите кнопку «Запуск новой конфигурации» (маленькая иконка, вверху слева, выглядит как значок «нового документа»). порт по умолчанию будет 8000, измените его на 9999 и смените аппарат, скорее всего, вы будете использовать localhost. и нажмите кнопку [Отладка]
, который должен это сделать. просто загрузите нормальный http://localhost:9000
в свой браузер просто подождите, пока приложение попадет в точку останова.
, это не очень помогает при отладке модульных тестов, но было бы полезным ответом, если бы это было для удаленной отладки игрового приложения – Stowelly
, это помогло мне :) – JustGoscha
Отключив вилку и параллельную работу в тестовой среде, вы можете отлаживать тесты. Только вы должны добавить эти строки конец файла build.sbt
:
parallelExecution in Test := false
fork in Test := false
ли эта помощь? http://stackoverflow.com/questions/10859064/how-to-debug-play-2-unit-test-for-server-side – Behe
Нет, это не так. Я использую игру, а не типный стек. –
Вы пробовали команду: 'play debug ~ test' – adis