IntelliJ IDEAでは、sbtからの実行でステップ実行をすることができる。
上の記事の手順と同様に、テスト実行時のJVMオプションを設定すれば、テストの実行もステップ実行で追うことがきるが、単純に javaOptions in Test ++= Seq("-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005")
みたいにしてしまうと、CI上で5005ポートのListenがなくてテストがフリーズしてしまう。
そこで以下のようにテスト設定をカスタマイズしよう。
lazy val commonSettings = Seq( scalaVersion := "2.11.4", organization := "com.example" ) lazy val TestWithDebug = config("debug") extend(Test) lazy val root = (project in file(".")). configs(TestWithDebug). settings(commonSettings: _*). settings(inConfig(TestWithDebug)(Defaults.testSettings): _*). settings( javaOptions in TestWithDebug ++= Seq("-Xdebug", "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005") )
こうしておけば
debug:test debug:testOnly hoge
とコマンドを打ったときだけ5005ポートにデバッグ情報が送信されるようになるので、CIの邪魔にならない。