I built cargo-test-changed to solve this problem. It automatically detects which crates have changed based on your Git status, and runs tests only for those crates – and optionally, their dependents.
Would love your feedback! If others find this useful, I'll publish it to crates.io. The project is MIT/Apache 2.0 licensed.