Users and especially developers hate waiting. Computing has adapted and we almost never wait for the computer for more than 10 seconds. One big exception is running a test suite, which takes MINUTES on many projects. That is incredibly distracting, frustrating and dragging the whole concept of automated tests down.
I will 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 will show that we can significantly reduce the test suite execution time without losing its reliability.