I\'d like to reduce the time which our build (using ant) takes for running the tests. Currently I am using the default forkMode, which forks a new vm on each test cl
Note that the default mode forks a new VM for each test case (i.e. class) not for each test (i.e. method). In the application I am currently testing there are problems that arise when I reuse a VM for more than one test: objects and state are left over from earlier tests and stop later ones from working. This may not be a problem if your application is well structured and your tests are strictly self-contained. I doubt garbage collection runs automatically after each test: it is notoriously hard to ensure that it is called at any given time in any case.
Looking at Stefan's blog entry about this I would venture to guess:
Generally running all your tests in one VM is a good thing. It forces you to look at static coupling and is a lot quicker. Crucially, it's also the way that your IDE will be running them, and that really is the way that tests should be run - as close as possible to as often as you compile.