Use the test macros to automatically propagate some errors, and check and log others while running the tests. This can help in debugging exactly why a test has failed.