Grease your Suite: Tips and Tricks for Faster Testing
Continuous integration is a great way to keep your code base organized and well tested. But when a test suite takes so long to run that developers stop running it before every commit, they lose their constant feedback loop and quality drops. In this talk weâ€™ll explore methods of speeding up the test suite so that developers can be confident about the code theyâ€™ve written before they share it with the team. Weâ€™ll start with quick cheap fixes, like optimizing your operating system, that can yield drastic results (like cutting test time in half!) with no loss of functionality. Weâ€™ll also cover methods of writing tests that reduce their run time with gems like fast_context for shoulda. At then end, weâ€™ll move to more involved methods of multi-tasking your test suite to run on all the cores in your workstation and even to setting up a distributed testing cloud to run all your tests in parallel. Every tactic will be backed up with hard benchmarks from real production code. Weâ€™ll show the evolution of a test suite from its full run time of 13 minutes down to a number you wonâ€™t believe.