At Streema we like to develop at a fast pace. One of the things that allows us to do that is to have an automatically tested codebase. We want to always be shipping and having our apps tested gives us some degree of confidence that we won’t break it all each time we commit a change.
But running tests takes time. A few months ago our unit tests were taking over 12 minutes to run. Each time someone wanted to run the tests, the situation was pretty much like this:
As you might recall, we use Python/Django. And our problem was the use of fixtures in our unit/functional tests. As @carljm said on his “Testing and Django” talk for PyCon 2012, they are slow to load, hard to maintain and increase test interdependence. We had huge fixtures, 1mb fixtures, which loaded thousands of models and they were used on dozens of tests! With a little bit of patience we were able to remove them all and replace them by using factory boy.
The result: we reduced the test run time from over 12 minutes to under a minute. Yes, a single minute. =)
Stay tuned for more news and insight on the technical details of Streema. We might have an interesting thing or two to share!
The Streema Team