It appears that t.Errorf() doesn't actually write or flush the output to stderr/stdout until the completeion of the test. This is problematic if there are interleaved log-lines in the code invoked between t.Errorf() calls, since it is then impossible to see which logs belong to which assertion (since all of the assertion failures appear after the debug output associated with different test assertions).