Beaker

Development tips

This is an assortment of various tips and tricks which the development team uses to improve or speed up their work.

Use the nose-progressive plugin

The nose-progressive plugin shows failures while the tests are still running, rather than printing them all at the end like stock nose. This is handy in a long-running test suite like Beaker’s.

The python-nose-progressive package is in Fedora and EPEL.

Trade data safety for speed in a development VM

The Beaker test suite’s performance is generally dominated by MySQL writes and Firefox profile creation.

If you are developing in a VM and can tolerate data loss in case the VM terminates unexpectedly, set data=writeback,barrier=0 mount options for the filesystem storing /var/lib/mysql. Also ensure that the VM’s disks are backed by LVM volumes, not image files.

Also consider mounting a tmpfs on /tmp (although Firefox profile creation seems to be largely CPU-bound so this does not have much impact on overall speed).