What sort of testing are you visualising? One can stick a macro invocation in a #[test] to check the (runtime) result is correct, and to test for compile-time error cases there's compiletest, which can run the compiler and check any errors/warnings match annotations that describe what is expected. It was pioneered by Rust's test suite (the src/test/{compile-fail,run-pass} tests are run via compiletest), but is used by some external crates.
Having never tested macros in other languages I didn't really know what I was looking for. I thought there may be some magical way to confirm a macro worked as expected (beyond putting it in production and hoping).
Having read your answer it's pretty clear I was overthinking the subject. With a little refactoring, #[test] should take care of everything I need.