Posted over 8 years ago. Visible to the public. Repeats. Linked content.

Automated "git bisect" will make your day

So you're hunting down a regression (or just a bug) and want to use git bisect to find out when it was introduced? Smart kid.
If you have a shell command ready to reveal if your current state is good or bad, you can have git do most of the work for you.

Using git bisect run <your command> you can tell git that your command will reveal the issue; git on the other hand will use the return value of that call to decide if the state is good or bad.

  1. First, start bisecting

    git bisect start
  2. Then tell git which revisions are good and which are bad. You need to manually run your command for this, or just know which ones work and don't work.

    git bisect bad git bisect good abcdef1234
  3. Now tell git what to do

    git bisect run bundle exec cucumber features/my.feature:42
  4. Wait for the results to come in: Git will bisect until it knows which commit was the first bad one.

For more information, see the original "git bisect" card.

Mind that your command needs to work across all revisions that you will be bisecting. If you're referencing a test file that's under version control, make sure you always run the correct test; copying the file to a location outside of your repository might be a viable solution to keep the line number steady while you time-travel between commits.

Flaky tests are tests that sometimes fail for no obvious reason. They are the plague of many end-to-end (E2E) test suites that automate the browser through tools like Capybara and Selenium.

Join our free training event and learn to fix any flaky test suite, even in large legacy applications.

Owner of this card:

Arne Hartherz
Last edit:
over 4 years ago
by Henning Koch
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Arne Hartherz to makandra dev
This website uses short-lived cookies to improve usability.
Accept or learn more