Due to legacy reasons we have forkMode set to 'pertest' in our pom. This configuration can't be changed. However when I remote debug in eclipse(or command line) I use `"-Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE" test -DforkMode=never"`. I then connect to port 8000 from eclipse. However since forkMode is set to pertest each time a jvm is spawned to run a test which means that I have to remote connect every time to keep the test running and I have over 3000 tests. The -DforkMode=never never takes effect and is overridden with what is the in the pom. Is this the right behavior? What can I do to have the remote debugger reconnect even if the jvm forks?
I'm not sure if I read that correctly, but anything that spawns multiple JVM instances has a problem.
The remote debugger is built into the JVM and the debug client (Eclipse, IntelliJ, jdb, or whatever) connects to it via a TCP/IP port. Since only one process can listen on any given TCP/IP port, each JVM instance would require its own port number and the debug client would have to establish a separate session for each of them. For 3000 concurrent JVMs, that would be 3000 ports and 3000 debug sessions. athough IIRC, Maven throttles that to many fewer JVMs than 3000 running concurrently.
Sometimes the only way things ever got fixed is because people became uncomfortable.