When you test with TestFixture''''''s, on database-facing code, you need light fast database records. http://www.zeroplayer.com/images/stuff/model_view_controller.png Test cases use database records like the beads in the left panel (from ModelViewController); smaller beads are leaf records. As tests run, the records must flicker in and out. Some tests might test the database is naively empty, and so on. Each test case... * begin a transaction with the database * execute one test case * lower level commits get rolled back. * on to next test case in microseconds In all my decades coding have not yet seen that work correctly in auto test runners. Because... ''You can't change transaction isolation levels with a transaction open.'' [I don't think that's it. I can't speak for other code, but the RelProject successfully uses extensive tests like the above -- nearly 500 at last count.]