Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

The Testing Game 1.0

Welcome to the Testing Game! A simple script that counts the number of Objective-C, Java, C++ or python unit tests in the current working directory within a git repository, and showcases a ranking based on the percentage each developer has written.

Example output:

Total Tests: 2694
1. Ellie Goulding , 659 (24.46%)
2. Bruno Mars, 255 (9.47%)
3. Ed Sheeran, 250 (9.28%)
4. Sam Smith, 199 (7.39%)
5. Calvin Harris, 147 (5.46%)


This script was made to “gameify” testing at Spotify and to continue encouraging Test-Driven Development.

How It Works

The script uses the current working directory to find files it could possibly read (such as .m, .mm and .java files) and performs a git blame on these files in order to match tests written to the developers that wrote them. The owner of the method name of the test is considered the developer that wrote it. Note that since this script makes use of git, the file will need to be committed before it is counted. This will always look on the currently checked out branch.


The script should run on any operating system containing these two dependencies. The script may operate on lower python or git versions, but there is a certain of amount of buyer beware here.


  1. Run the Python from this repository:

    > python install
  2. Run the testing game script from your repository (or subdirectory):

    > testinggame
  3. Mention that you write most unit units of your project on every meeting (no, don’t do that).


Yes please! Contributions are always welcomed, have a look at the document for more information.


See the project’s contributors page.


This repository is licensed under an Apache 2 license.