This morning one of the Jenkins job went red, 5 tests were failing, and it was very difficult to find out which commit caused the break (69 commits were concerned), I used git bisect to run maven tests to find the guilty one. Here is a quick howto:

  • find a stable commit (in my case it was 2ea34cf09cc83804cdcc445476bfb597c617a034)
  • write a short script (myScript.sh) allowing you to run the tests:

#!/bin/sh
mvn -f path/to/my/pom.xml -Dtest=MyTestClass test
  • git bisect start HEAD 2ea34cf09cc83804cdcc445476bfb597c617a034
  • git bisect run ./myScript.sh

That's all, in a few runs (6 in my cases), git found out the commit causing the test failure, a simple git revert and tests were back to green !

comments powered by Disqus