For your original question, testing binaries, I'd definitely recommend just executing the binary itself and asserting the stdout/stderr/status (Command::output
is super useful for this). Cargo will automatically ensure that your binary is compiled when running integration tests (tests/*.rs
) as well.
Also FWIW I think Cargo is a good example of what "almost all the bells and whistles" would look like, but it's pretty complicated as others have mentioned. Cargo does exec itself (via Command
, behind many layers), though.