diff --git a/crypto/dh/dh_test.cc b/crypto/dh/dh_test.cc
index 9cde679..e08664f 100644
--- a/crypto/dh/dh_test.cc
+++ b/crypto/dh/dh_test.cc
@@ -86,7 +86,6 @@
       !TestBadY() ||
       !TestASN1() ||
       !TestRFC3526()) {
-    ERR_print_errors_fp(stderr);
     ADD_FAILURE() << "Tests failed.";
   }
 }
diff --git a/crypto/dsa/dsa_test.cc b/crypto/dsa/dsa_test.cc
index d2cd33e..63b7803 100644
--- a/crypto/dsa/dsa_test.cc
+++ b/crypto/dsa/dsa_test.cc
@@ -312,7 +312,6 @@
       !TestVerify(fips_sig_extra, sizeof(fips_sig_extra), -1) ||
       !TestVerify(fips_sig_bad_length, sizeof(fips_sig_bad_length), -1) ||
       !TestVerify(fips_sig_bad_r, sizeof(fips_sig_bad_r), 0)) {
-    ERR_print_errors_fp(stderr);
     ADD_FAILURE() << "Tests failed";
   }
 }
diff --git a/crypto/test/gtest_main.cc b/crypto/test/gtest_main.cc
index 50147bc..50970af 100644
--- a/crypto/test/gtest_main.cc
+++ b/crypto/test/gtest_main.cc
@@ -14,10 +14,35 @@
 
 #include <gtest/gtest.h>
 
+#include <stdio.h>
+
+#include <openssl/err.h>
 #include <openssl/crypto.h>
 
+namespace {
+
+class ErrorTestEventListener : public testing::EmptyTestEventListener {
+ public:
+  ErrorTestEventListener() {}
+  ~ErrorTestEventListener() override {}
+
+  void OnTestEnd(const testing::TestInfo &test_info) override {
+    // If the test failed, print any errors left in the error queue.
+    if (test_info.result()->Failed()) {
+      ERR_print_errors_fp(stdout);
+    }
+
+    // Clean up the error queue for the next run.
+    ERR_clear_error();
+  }
+};
+
+}  // namespace
+
 int main(int argc, char **argv) {
   CRYPTO_library_init();
   testing::InitGoogleTest(&argc, argv);
+  testing::UnitTest::GetInstance()->listeners().Append(
+      new ErrorTestEventListener);
   return RUN_ALL_TESTS();
 }
diff --git a/ssl/ssl_test.cc b/ssl/ssl_test.cc
index 304aa0c..aaad1bc 100644
--- a/ssl/ssl_test.cc
+++ b/ssl/ssl_test.cc
@@ -3101,7 +3101,6 @@
       !ForEachVersion(TestSSLClearSessionResumption) ||
       !ForEachVersion(TestAutoChain) ||
       !ForEachVersion(TestSSLWriteRetry)) {
-    ERR_print_errors_fp(stderr);
     ADD_FAILURE() << "Tests failed";
   }
 }
