better error messages for unit tests

This patch cleans up some evals, surfaces setup and teardown errors, and displays more informative top-level error messages.