Skip to content

spotify/testing-game

master
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?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
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%)

Background

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.

Dependencies

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.

Usage

  1. Run the Python setup.py from this repository:

    > python setup.py 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).

Contribution

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

Credits

See the project’s contributors page.

License

This repository is licensed under an Apache 2 license.