Debug a test case under a mavenized project
Sometimes is shows up as a hard task to debug a simple testcase method as there should be some rules to meet, dependencies to inject, or configurations to initialize and that may be out of the current test class scope.
If your are using maven as your build tool, there is an ultimate method as you can run your tests using the maven surfire plugin attached for remote debug on some port.
Just run the test phase with maven.surefire.debug system property:
mvn test -Dmaven.surefire.debug -Dtest=full.qualified.name.ClassName#testMethodName
This will attach the debugger to listen on the 5005 port (used by default), so just configure your favorite IDE to attach to that port and set up a break point.
You can even change the port number using:
mvn clean test -Dtest=full.qualified.name.ClassName#testMethodName -Dmaven.surefire.debug="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000 -Xnoagent -Djava.compiler=NONE"
This will attach the tell the jvm process to listen on 8000 port.
Written by Marwen Trabelsi
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Test
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#