views:

51

answers:

2

Hi,

In one of my Django projects I have a suite of unit tests that are based on TransactionalTestCase class (it takes much longer than TestCase). It is impossible to run tests after each change in code because it takes more than 0.5 hour to run all tests. We looked some time ago for some easy contiuous integration tool that could allow us to (at least) run tests on tests server and send emails with errors to the team members (we have of course code repository and we don't need auto deployment at the momment). Do you have some working solutions or ideas how to accomplish this?

We wrote some 'super extra simple CI server' which does nothing more than running tests and sending email reports (it is integrated with our code repository). But since we had some problems with our not-ideal simple tool recently I'm wondering now if you have sucessfully completed similar scenarios in your working enviroment?

I'm looking for something ligthweight, easy to install and use.

+1  A: 

Have you considered having two kinds of tests - basic and advanced and adding additional django command, that would run only basic tests, that are fast? This way you can do basic testing on small changes and run the full test suite only when you are about to commit/push changes?

gruszczy
Good idea but unfortunetely most of our tests use TransactionlTestCase as a base class (this is very specific project) and that's why we need to provide some environemnt to run them after code changes.
Lukasz Dziedzia
+3  A: 

Disclaimer: I don't know Django. But I do know that I use Hudson as my continuous integration tool for a number of languages and platforms. I found it easy to install and confgure on both Windows and Linux (set & forget) and was impressed with the number of plugins available.

Basically, if what you want to do can be automated by a sctript file, then you can use Hudson. It really is worth checking out.

It took me only a few minutes to set it so that I get an email if, and only if, something goes wrong, although you might want to do somethinng else (for which there probably exists a plugin). Hudson also plays well with other tools like BigZilla, all major version control tools, etc

LeonixSolutions
+1 for Hudson http://heisel.org/blog/2009/11/21/django-hudson/
Van Gale
+1 I would strongly suggest that the answer has been found. Well done @van gale
LeonixSolutions
This is not so simple I expected but looks promising anyway.
Lukasz Dziedzia