Often I don't want tests to run that I've run before.
I have a huge project that has a lot of algorithms that, if I haven't changed the project or the project's dependencies, why would I want the tests to run??
It's even better with the build cache. If my CI tool has run those tests, I don't have to, because it beat me to it.
You do have to ensure you declare all of your inputs/outputs correctly, but as long as you do, it makes everything much faster.