1) separate tests from the source code 2) (separate PR) separate out unit tests ( which must be fast by definition) from other slower tests (integration, functional, end-to-end, etc).