The test suite takes a long time to run, and a lot of the time spent running is really wasted on repeated startup and shutdown, waiting for asynchronous events to occur, and production-tuned timeouts to occur. Additionally, we use a MiniDFS instead of the local filesystem.
- Make whatever changes are needed to the local DFS so that it can run on Windows and use that as the basis of all of our tests
- Minimize redoing expensive setup where possible by combining tests into groups or suites that can share common setup
- Create a way of running all the parts (Master, Regionserver, Client) in a single thread and explicitly advancing through necessary states so that we can reliably and quickly get what we need tested accomplished
- Use smaller test datasets where it would make a difference (TestTableIndex and TestTableMapReduce, I'm looking at you!)
A faster test suite means faster turnaround on new patches, faster Hudson, and a shorter patch queue. Not to mention less annoyance on the part of the developers.