1. Does this mean I have to disable IDE autosave so it doesn't attempt to run tests when the project is in an intermediate, invalid state?
2. How does it detect what tests need to be re-run when a given file changes?
2. How does it detect what tests need to be re-run when a given file changes?
2. The first run and every subsequent one collects code coverage which is saved in an sqlite db. Every file change is compared to the code coverage.
Although this approach isnt perfect, The idea here is being fast. I always rerun the entire suite just before committing the code.
As the author explained in another comment, it initially generates the code coverage for all tests. When code is changed, only the tests that cover that code are rerun.
So you can always rely on that background terminal for actual test failure reasons.