問題
Eclipseからjunitのテストクラスを実行すると以下のようなエラーがでるとき、ググるとたいていクラスパスがどうのといわれる。
エラー: メイン・クラスorg.eclipse.jdt.internal.junit.runner.RemoteTestRunnerを検出およびロードできませんでした
原因: java.lang.ClassNotFountException: org.eclipse.jdt.internal.junit.runner.RemoteTestRunner
いろいろな解決策を試すも一向に治らないので(仕事で時間かけてるのもアホらしいので)、Gradleテストでリモートデバッグできないのかと調べたらあった。
リモートデバッグ
「--debug-jvm」オプションをつけて実行すると5005ポートで待受になるので、Eclipseからリモートデバッグで接続することが可能。
$ ./gradlew test --tests "*XxxxTest" --info --debug-jvm
- オプション
- --tests "*XxxxTest": 実行したいテストクラスのFQCN
- --info: Gradle実行のログレベルをINFOに(好みで)
まとめ
今までできないものだと思ってたが、Gradleにもリモートデバッグが可能になるオプションがあった。