The Testing Goat

Obey the Testing Goat!

TDD for the Web, with Python, Selenium, Django, JavaScript and pals...

The book

I'm writing a book about Test-Driven-Development for web programming. It's forthcoming on O'Reilly. I want to get as much feedback on it as possible while I'm still writing it, and I'd love your help.

There are 2 ways you can read the book:

Obviously this is my favourite option! O'Reilly are great, they have DRM-free versions you can download in all sorts of formats (MOBI/epub/pdf), and you'll get updates automatically every few weeks. You can also read it at Safari if you have an account there.

Via O'Reilly' Chimera. I see this as a "try-before-you-buy" scheme, and I hope that if you enjoy it you'll buy a copy -- if not for yourself, then perhaps for a friend!

And do get in touch with comments, suggestions, corrections etc!


Book upgraded to Django 1.7!

I've just completed the process of upgrading the whole book to the Django 1.7 beta release. Migrations were the biggest change. They've meant a slight increase to the learning curve for chapters 5 & 6, but on the other hand I was able to drop the dedicated migrations chapter altogether!

Wed 02 April 2014 by Harry

How to log exceptions to stderr in Django

Django logging can be a little baffling. Here's an answer to the "how do I make django log all exceptions to the console?" question, which isn't necessarily obvious.

Thu 23 January 2014 by Harry

Page 1 / 2 »

Read the book

I'm writing a book all about TDD and Web programming. Read the draft and let me know what you think!

Reviews & Testimonials

"Hands down the best teaching book I've ever read""Even the first 4 chapters were worth the money""Oh my gosh! This book is outstanding""The testing goat is my new friend"Read more...


A selection of links and videos about TDD, not necessarily all mine, eg this tutorial at PyCon 2013, how to motivate coworkers to write unit tests, thoughts on Django's test tools, London-style TDD and more.

Old TDD / Django Tutorial

This is my old TDD tutorial, which follows along with the official Django tutorial, but with full TDD. It badly needs updating. Read the book instead!

Save the Testing Goat Campaign

The campaign page, preserved for history, which led to the glorious presence of the Testing Goat on the front of the book.