I came across Travis CI this week, and it's awesome. I've got a bunch of tests for django-magazine, but I'm not very good at running them. It turns out that unit tests aren't very useful if you don't run them, so I wanted to make sure that every time I pushed code to it, the tests run. Enter Travis CI.
See, I know nothing! — Manuel I distinctly remember being 17 years old, I'd just finished re-launching a site for a charity I was involved with[1.Oxygen's site has gone through several versions since I moved away in 2004 to start university. The wonderful Wayback Machine has a cache of the site from around that time.], and I confidently declared that I knew all there was to know about building websites. And I believed it.
I started with unit testing about 4 years ago. I started writing what were probably integration tests, when I was working on the database backend of our application. The tests I wrote were designed to make sure that our process which saved data actually saved data.
Every once in a while, I want to start again. I currently have 6 different sites using Kaléo, a bit of software I wrote for managing Church websites, which I'll write about another time. The code is stored in a private git repository, and synced out to 6 different places every time I need to make a change.
I'd basically given up on attempting test-driven with Django, given the project I'm currently working on uses models with a lot of South migrations. Just building the database and running the migrations could take a minute or so when running manage.py test, and resetting the database to a clean state meant the test suite would take several minutes to run.