Users and developers especially, hate waiting. Computing has adapted and we almost never wait for the computer for more then 10 seconds. One big exception is runnig a test suite which takes MINUTES on many projects. That is incredibly distracting, frustrating and dragging the whole concept of automated tests down.
I present a technique and a tool (py.test plugin called “testmon") which automatically selects only tests affected by recent changes. Does it sound too good to be true? Python developers rightfully have a suspecting attitude towards any tool which tries to be too clever about their source code. Code completion and symbol searching doesn’t need to be 100% reliable but messing with the test suite execution? I show that we can cut test suite execution time significantly but maintain it’s reliability.