diff --git a/Options.cpp b/Options.cpp
index 5de9157..0b2ba51 100644
--- a/Options.cpp
+++ b/Options.cpp
@@ -44,6 +44,7 @@
     {"deadline_threshold_ms", {FLAG_REQUIRES_VALUE, &Options::SetNumeric}},
     {"slow_threshold_ms", {FLAG_REQUIRES_VALUE, &Options::SetNumeric}},
     {"gtest_format", {FLAG_NONE, &Options::SetBool}},
+    {"no_gtest_format", {FLAG_NONE, &Options::SetBool}},
     {"gtest_list_tests", {FLAG_NONE, &Options::SetBool}},
     {"gtest_filter", {FLAG_ENVIRONMENT_VARIABLE | FLAG_REQUIRES_VALUE, &Options::SetString}},
     {
@@ -225,7 +226,8 @@
   strings_["gtest_filter"] = "";
   bools_.clear();
   bools_["gtest_print_time"] = ::testing::GTEST_FLAG(print_time);
-  bools_["gtest_format"] = false;
+  bools_["gtest_format"] = true;
+  bools_["no_gtest_format"] = false;
   bools_["gtest_also_run_disabled_tests"] = ::testing::GTEST_FLAG(also_run_disabled_tests);
   bools_["gtest_list_tests"] = false;
 
@@ -299,6 +301,11 @@
       return false;
     }
   }
+
+  // If no_gtest_format was specified, it overrides gtest_format.
+  if (bools_.at("no_gtest_format")) {
+    bools_["gtest_format"] = false;
+  }
   return true;
 }
 
diff --git a/tests/OptionsTest.cpp b/tests/OptionsTest.cpp
index 7816ea7..c1bb59e 100644
--- a/tests/OptionsTest.cpp
+++ b/tests/OptionsTest.cpp
@@ -78,7 +78,7 @@
   EXPECT_EQ("", options.filter());
   EXPECT_EQ(1, options.num_iterations());
   EXPECT_TRUE(options.print_time());
-  EXPECT_FALSE(options.gtest_format());
+  EXPECT_TRUE(options.gtest_format());
   EXPECT_FALSE(options.allow_disabled_tests());
   EXPECT_FALSE(options.list_tests());
   EXPECT_EQ(std::vector<const char*>{"ignore"}, child_args);
@@ -104,6 +104,35 @@
   EXPECT_EQ("--gtest_format does not take an argument.\n", capture.str());
 }
 
+TEST(OptionsTest, no_gtest_format) {
+  std::vector<const char*> cur_args{"ignore", "--no_gtest_format"};
+  std::vector<const char*> child_args;
+  Options options;
+  ASSERT_TRUE(options.Process(cur_args, &child_args));
+  EXPECT_FALSE(options.gtest_format());
+  EXPECT_EQ(std::vector<const char*>{"ignore"}, child_args);
+}
+
+TEST(OptionsTest, no_gtest_format_and_gtest_format) {
+  std::vector<const char*> cur_args{"ignore", "--no_gtest_format", "--gtest_format"};
+  std::vector<const char*> child_args;
+  Options options;
+  ASSERT_TRUE(options.Process(cur_args, &child_args));
+  EXPECT_FALSE(options.gtest_format());
+  EXPECT_EQ(std::vector<const char*>{"ignore"}, child_args);
+}
+
+TEST(OptionsTest, no_gtest_format_error_argument) {
+  CapturedStdout capture;
+  std::vector<const char*> cur_args{"ignore", "--no_gtest_format=not_allowed"};
+  std::vector<const char*> child_args;
+  Options options;
+  bool parsed = options.Process(cur_args, &child_args);
+  capture.Stop();
+  ASSERT_FALSE(parsed) << "Process did not fail properly.";
+  EXPECT_EQ("--no_gtest_format does not take an argument.\n", capture.str());
+}
+
 TEST(OptionsTest, gtest_list_tests) {
   std::vector<const char*> cur_args{"ignore", "--gtest_list_tests"};
   std::vector<const char*> child_args;
@@ -613,7 +642,7 @@
   EXPECT_EQ("", options.filter());
   EXPECT_EQ(1, options.num_iterations());
   EXPECT_TRUE(options.print_time());
-  EXPECT_FALSE(options.gtest_format());
+  EXPECT_TRUE(options.gtest_format());
   EXPECT_FALSE(options.allow_disabled_tests());
   EXPECT_FALSE(options.list_tests());
   EXPECT_EQ(std::vector<const char*>{"ignore"}, child_args);
diff --git a/tests/SystemTests.cpp b/tests/SystemTests.cpp
index a3a378a..847d44f 100644
--- a/tests/SystemTests.cpp
+++ b/tests/SystemTests.cpp
@@ -192,7 +192,8 @@
       "[    OK    ] SystemTests.DISABLED_pass (XX ms)\n"
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test.\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_pass", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_pass", expected, 0, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_pass_no_print_time) {
@@ -203,7 +204,8 @@
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test.\n";
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_pass", expected, 0, std::vector<const char*>{"--gtest_print_time=0"}));
+      Verify("*.DISABLED_pass", expected, 0,
+             std::vector<const char*>{"--gtest_print_time=0", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_pass_color) {
@@ -214,7 +216,8 @@
       "\x1B[0;32m[==========]\x1B[m 1 test from 1 test suite ran. (XX ms total)\n"
       "\x1B[0;32m[  PASSED  ]\x1B[m 1 test.\n";
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_pass", expected, 0, std::vector<const char*>{"--gtest_color=yes"}));
+      Verify("*.DISABLED_pass", expected, 0,
+             std::vector<const char*>{"--gtest_color=yes", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_pass_gtest_format) {
@@ -225,8 +228,7 @@
       "[       OK ] SystemTests.DISABLED_pass (XX ms)\n"
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test.\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_pass", expected, 0, std::vector<const char*>{"--gtest_format"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_pass", expected, 0));
 }
 
 TEST_F(SystemTests, verify_pass_gtest_format_no_print_time) {
@@ -238,8 +240,7 @@
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test.\n";
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_pass", expected, 0,
-             std::vector<const char*>{"--gtest_format", "--gtest_print_time=0"}));
+      Verify("*.DISABLED_pass", expected, 0, std::vector<const char*>{"--gtest_print_time=0"}));
 }
 
 TEST_F(SystemTests, verify_pass_gtest_format_color) {
@@ -250,8 +251,8 @@
       "\x1B[0;32m[       OK ]\x1B[m SystemTests.DISABLED_pass (XX ms)\n"
       "\x1B[0;32m[==========]\x1B[m 1 test from 1 test suite ran. (XX ms total)\n"
       "\x1B[0;32m[  PASSED  ]\x1B[m 1 test.\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_pass", expected, 0,
-                                 std::vector<const char*>{"--gtest_format", "--gtest_color=yes"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_pass", expected, 0, std::vector<const char*>{"--gtest_color=yes"}));
 }
 
 TEST_F(SystemTests, verify_skip) {
@@ -263,7 +264,8 @@
       "[  PASSED  ] 0 tests.\n"
       "[  SKIPPED ] 1 test, listed below:\n"
       "[  SKIPPED ] SystemTests.DISABLED_skip_no_message\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0,
+                                 std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_skip_with_message) {
@@ -276,7 +278,8 @@
       "[  PASSED  ] 0 tests.\n"
       "[  SKIPPED ] 1 test, listed below:\n"
       "[  SKIPPED ] SystemTests.DISABLED_skip_with_message\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_with_message", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_with_message", expected, 0,
+                                 std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_skip_no_print_time) {
@@ -288,8 +291,9 @@
       "[  PASSED  ] 0 tests.\n"
       "[  SKIPPED ] 1 test, listed below:\n"
       "[  SKIPPED ] SystemTests.DISABLED_skip_no_message\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0,
-                                 std::vector<const char*>{"--gtest_print_time=0"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_skip_no_message", expected, 0,
+             std::vector<const char*>{"--gtest_print_time=0", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_skip_color) {
@@ -301,8 +305,9 @@
       "\x1B[0;32m[  PASSED  ]\x1B[m 0 tests.\n"
       "\x1B[0;32m[  SKIPPED ]\x1B[m 1 test, listed below:\n"
       "\x1B[0;32m[  SKIPPED ]\x1B[m SystemTests.DISABLED_skip_no_message\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0,
-                                 std::vector<const char*>{"--gtest_color=yes"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_skip_no_message", expected, 0,
+             std::vector<const char*>{"--gtest_color=yes", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_skip_gtest_format) {
@@ -315,8 +320,7 @@
       "[  PASSED  ] 0 tests.\n"
       "[  SKIPPED ] 1 test, listed below:\n"
       "[  SKIPPED ] SystemTests.DISABLED_skip_no_message\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0,
-                                 std::vector<const char*>{"--gtest_format"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0));
 }
 
 TEST_F(SystemTests, verify_skip_gtest_format_with_message) {
@@ -330,8 +334,7 @@
       "[  PASSED  ] 0 tests.\n"
       "[  SKIPPED ] 1 test, listed below:\n"
       "[  SKIPPED ] SystemTests.DISABLED_skip_with_message\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_with_message", expected, 0,
-                                 std::vector<const char*>{"--gtest_format"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_with_message", expected, 0));
 }
 
 TEST_F(SystemTests, verify_skip_gtest_format_no_print_time) {
@@ -344,9 +347,8 @@
       "[  PASSED  ] 0 tests.\n"
       "[  SKIPPED ] 1 test, listed below:\n"
       "[  SKIPPED ] SystemTests.DISABLED_skip_no_message\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_skip_no_message", expected, 0,
-             std::vector<const char*>{"--gtest_format", "--gtest_print_time=0"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0,
+                                 std::vector<const char*>{"--gtest_print_time=0"}));
 }
 
 TEST_F(SystemTests, verify_skip_gtest_format_color) {
@@ -360,7 +362,7 @@
       "\x1B[0;32m[  SKIPPED ]\x1B[m 1 test, listed below:\n"
       "\x1B[0;32m[  SKIPPED ]\x1B[m SystemTests.DISABLED_skip_no_message\n";
   ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_skip_no_message", expected, 0,
-                                 std::vector<const char*>{"--gtest_format", "--gtest_color=yes"}));
+                                 std::vector<const char*>{"--gtest_color=yes"}));
 }
 
 TEST_F(SystemTests, verify_xfail_fail_expect_to_fail) {
@@ -375,7 +377,8 @@
       "DISABLED_SystemTestsXfail.xfail_fail exited with exitcode 1.\n"
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test. (1 expected failure)\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.xfail_fail", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.xfail_fail", expected, 0, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_xfail_fail_expect_to_fail_color) {
@@ -391,7 +394,8 @@
       "\x1B[0;32m[==========]\x1B[m 1 test from 1 test suite ran. (XX ms total)\n"
       "\x1B[0;32m[  PASSED  ]\x1B[m 1 test. (1 expected failure)\n";
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.xfail_fail", expected, 0, std::vector<const char*>{"--gtest_color=yes"}));
+      Verify("*.xfail_fail", expected, 0,
+             std::vector<const char*>{"--gtest_color=yes", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_xfail_fail_expect_to_fail_gtest_format) {
@@ -407,8 +411,7 @@
       "[       OK ] DISABLED_SystemTestsXfail.xfail_fail (XX ms)\n"
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test. (1 expected failure)\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.xfail_fail", expected, 0, std::vector<const char*>{"--gtest_format"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.xfail_fail", expected, 0));
 }
 
 TEST_F(SystemTests, verify_xfail_pass_expect_to_fail) {
@@ -422,7 +425,8 @@
       "[  FAILED  ] DISABLED_SystemTestsXfail.xfail_pass\n"
       "\n"
       " 1 SHOULD HAVE FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.xfail_pass", expected, 1));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.xfail_pass", expected, 1, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_xfail_pass_expect_to_fail_gtest_format) {
@@ -437,8 +441,7 @@
       "[  FAILED  ] DISABLED_SystemTestsXfail.xfail_pass\n"
       "\n"
       " 1 SHOULD HAVE FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.xfail_pass", expected, 1, std::vector<const char*>{"--gtest_format"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.xfail_pass", expected, 1));
 }
 
 TEST_F(SystemTests, verify_xfail_pass_expect_to_fail_color) {
@@ -453,7 +456,8 @@
       "\n"
       " 1 SHOULD HAVE FAILED TEST\n";
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.xfail_pass", expected, 1, std::vector<const char*>{"--gtest_color=yes"}));
+      Verify("*.xfail_pass", expected, 1,
+             std::vector<const char*>{"--gtest_color=yes", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_deathtest_pass) {
@@ -463,7 +467,8 @@
       "[    OK    ] SystemTestsDeathTest.DISABLED_death_pass (XX ms)\n"
       "[==========] 1 test from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 1 test.\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_death_pass", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_death_pass", expected, 0, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_fail) {
@@ -482,7 +487,8 @@
       "[  FAILED  ] SystemTests.DISABLED_fail\n"
       "\n"
       " 1 FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_fail", expected, 1));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_fail", expected, 1, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_fail_color) {
@@ -502,7 +508,8 @@
       "\n"
       " 1 FAILED TEST\n";
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_fail", expected, 1, std::vector<const char*>{"--gtest_color=yes"}));
+      Verify("*.DISABLED_fail", expected, 1,
+             std::vector<const char*>{"--gtest_color=yes", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_fail_gtest_format) {
@@ -522,8 +529,7 @@
       "[  FAILED  ] SystemTests.DISABLED_fail\n"
       "\n"
       " 1 FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_fail", expected, 1, std::vector<const char*>{"--gtest_format"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_fail", expected, 1));
 }
 
 TEST_F(SystemTests, verify_fail_gtest_format_color) {
@@ -543,8 +549,8 @@
       "\x1B[0;31m[  FAILED  ]\x1B[m SystemTests.DISABLED_fail\n"
       "\n"
       " 1 FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_fail", expected, 1,
-                                 std::vector<const char*>{"--gtest_format", "--gtest_color=yes"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_fail", expected, 1, std::vector<const char*>{"--gtest_color=yes"}));
 }
 
 TEST_F(SystemTests, verify_deathtest_fail) {
@@ -564,7 +570,8 @@
       "[  FAILED  ] SystemTestsDeathTest.DISABLED_death_fail\n"
       "\n"
       " 1 FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_death_fail", expected, 1));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_death_fail", expected, 1, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_crash) {
@@ -583,7 +590,8 @@
       "[  FAILED  ] SystemTests.DISABLED_crash\n"
       "\n"
       " 1 FAILED TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_crash", expected, 1));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_crash", expected, 1, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_warning_slow) {
@@ -597,8 +605,9 @@
       "[  SLOW    ] SystemTests.DISABLED_sleep5 (XX ms, exceeded 3000 ms)\n"
       "\n"
       " 1 SLOW TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_sleep5", expected, 0,
-                                 std::vector<const char*>{"--slow_threshold_ms=3000"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_sleep5", expected, 0,
+             std::vector<const char*>{"--slow_threshold_ms=3000", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_warning_slow_color) {
@@ -614,7 +623,8 @@
       " 1 SLOW TEST\n";
   ASSERT_NO_FATAL_FAILURE(
       Verify("*.DISABLED_sleep5", expected, 0,
-             std::vector<const char*>{"--slow_threshold_ms=3000", "--gtest_color=yes"}));
+             std::vector<const char*>{"--slow_threshold_ms=3000", "--gtest_color=yes",
+                                      "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_timeout) {
@@ -629,8 +639,9 @@
       "[  TIMEOUT ] SystemTests.DISABLED_sleep_forever (stopped at XX ms)\n"
       "\n"
       " 1 TIMEOUT TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_sleep_forever", expected, 1,
-                                 std::vector<const char*>{"--deadline_threshold_ms=3000"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_sleep_forever", expected, 1,
+             std::vector<const char*>{"--deadline_threshold_ms=3000", "--no_gtest_format"}));
 }
 
 // Verify that tests that timeout do not get marked as slow too when
@@ -651,9 +662,10 @@
       "\n"
       " 1 SLOW TEST\n"
       " 1 TIMEOUT TEST\n";
-  ASSERT_NO_FATAL_FAILURE(Verify(
-      "*.DISABLED_sleep*", expected, 1,
-      std::vector<const char*>{"--slow_threshold_ms=1000", "--deadline_threshold_ms=10000"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_sleep*", expected, 1,
+             std::vector<const char*>{"--slow_threshold_ms=1000", "--deadline_threshold_ms=10000",
+                                      "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_timeout_color) {
@@ -670,7 +682,8 @@
       " 1 TIMEOUT TEST\n";
   ASSERT_NO_FATAL_FAILURE(
       Verify("*.DISABLED_sleep_forever", expected, 1,
-             std::vector<const char*>{"--deadline_threshold_ms=3000", "--gtest_color=yes"}));
+             std::vector<const char*>{"--deadline_threshold_ms=3000", "--gtest_color=yes",
+                                      "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_order_isolated) {
@@ -682,7 +695,8 @@
       "[    OK    ] SystemTests.DISABLED_order_1 (XX ms)\n"
       "[==========] 3 tests from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_order_*", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("*.DISABLED_order_*", expected, 0, std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_order_not_isolated) {
@@ -702,8 +716,8 @@
       "[----------] Global test environment tear-down\n"
       "[==========] 3 tests from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_order_*", expected, 0, std::vector<const char*>{"--no_isolate"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_order_*", expected, 0,
+                                 std::vector<const char*>{"--no_isolate", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_fail_ge10) {
@@ -753,7 +767,8 @@
       "[    OK    ] SystemTests.DISABLED_job_3 (XX ms)\n"
       "[==========] 3 tests from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
-  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_job_*", expected, 0, std::vector<const char*>{"-j1"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_job_*", expected, 0,
+                                 std::vector<const char*>{"-j1", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_job_count_multiple) {
@@ -765,8 +780,8 @@
       "[    OK    ] SystemTests.DISABLED_job_3 (XX ms)\n"
       "[==========] 3 tests from 1 test suite ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
-  ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_job_*", expected, 0, std::vector<const char*>{"-j", "2"}));
+  ASSERT_NO_FATAL_FAILURE(Verify("*.DISABLED_job_*", expected, 0,
+                                 std::vector<const char*>{"-j", "2", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_help) {
@@ -833,7 +848,8 @@
       "[  PASSED  ] 3 tests.\n";
   uint64_t time_ns = NanoTime();
   ASSERT_NO_FATAL_FAILURE(
-      Verify("*.DISABLED_order_*", expected, 0, std::vector<const char*>{"--gtest_repeat=3"}));
+      Verify("*.DISABLED_order_*", expected, 0,
+             std::vector<const char*>{"--gtest_repeat=3", "--no_gtest_format"}));
   time_ns = NanoTime() - time_ns;
   // Make sure that the total test time is about 18 seconds.
   double seconds = double(time_ns) / 1000000000;
@@ -848,7 +864,7 @@
 TEST_F(SystemTests, verify_results_as_tests_finish) {
   // This test verifies that test output comes out as the test finishes.
   Exec(std::vector<const char*>{"--gtest_filter=*.DISABLED_order_*",
-                                "--gtest_also_run_disabled_tests", "-j20"});
+                                "--gtest_also_run_disabled_tests", "-j20", "--no_gtest_format"});
 
   std::string output;
   std::vector<char> buffer(4096);
@@ -990,7 +1006,7 @@
 }
 
 TEST_F(SystemTests, verify_disabled) {
-  std::vector<const char*> args{"--gtest_filter=*always_pass", "-j2"};
+  std::vector<const char*> args{"--gtest_filter=*always_pass", "-j2", "--no_gtest_format"};
 
   ASSERT_NO_FATAL_FAILURE(ExecAndCapture(args));
   ASSERT_EQ(0, exitcode_) << "Test output:\n" << raw_output_;
@@ -1007,7 +1023,8 @@
 }
 
 TEST_F(SystemTests, verify_disabled_color) {
-  std::vector<const char*> args{"--gtest_filter=*always_pass", "-j2", "--gtest_color=yes"};
+  std::vector<const char*> args{"--gtest_filter=*always_pass", "-j2", "--gtest_color=yes",
+                                "--no_gtest_format"};
 
   ASSERT_NO_FATAL_FAILURE(ExecAndCapture(args));
   ASSERT_EQ(0, exitcode_) << "Test output:\n" << raw_output_;
@@ -1060,7 +1077,7 @@
 TEST_F(SystemTests, verify_SIGQUIT) {
   // Verify that SIGQUIT prints all of the running tests.
   Exec(std::vector<const char*>{"--gtest_filter=*.DISABLED_job*", "--gtest_also_run_disabled_tests",
-                                "-j20"});
+                                "-j20", "--no_gtest_format"});
   // It is expected that all of the tests will be sleeping so nothing will
   // complete by the time the signal is sent.
   sleep(1);
@@ -1102,7 +1119,7 @@
 TEST_F(SystemTests, verify_SIGQUIT_after_test_finish) {
   // Verify that SIGQUIT prints all of the tests after a test finishes.
   Exec(std::vector<const char*>{"--gtest_filter=*.DISABLED_sigquit_*",
-                                "--gtest_also_run_disabled_tests", "-j20"});
+                                "--gtest_also_run_disabled_tests", "-j20", "--no_gtest_format"});
   // It is expected that one tests will have finished, but the rest will still
   // be running.
   sleep(1);
@@ -1198,7 +1215,8 @@
       "[  PASSED  ] 3 tests.\n";
   ASSERT_NE(-1, setenv("GTEST_TOTAL_SHARDS", "4", 1));
   ASSERT_NE(-1, setenv("GTEST_SHARD_INDEX", "0", 1));
-  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0,
+                                 std::vector<const char*>{"--no_gtest_format"}));
 
   expected =
       "Note: Google Test filter = SystemTestsShard*.DISABLED*\n"
@@ -1210,7 +1228,8 @@
       "[==========] 3 tests from 3 test suites ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
   ASSERT_NE(-1, setenv("GTEST_SHARD_INDEX", "1", 1));
-  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0,
+                                 std::vector<const char*>{"--no_gtest_format"}));
 
   expected =
       "Note: Google Test filter = SystemTestsShard*.DISABLED*\n"
@@ -1222,7 +1241,8 @@
       "[==========] 3 tests from 3 test suites ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
   ASSERT_NE(-1, setenv("GTEST_SHARD_INDEX", "2", 1));
-  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0,
+                                 std::vector<const char*>{"--no_gtest_format"}));
 
   expected =
       "Note: Google Test filter = SystemTestsShard*.DISABLED*\n"
@@ -1234,7 +1254,8 @@
       "[==========] 3 tests from 3 test suites ran. (XX ms total)\n"
       "[  PASSED  ] 3 tests.\n";
   ASSERT_NE(-1, setenv("GTEST_SHARD_INDEX", "3", 1));
-  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0));
+  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0,
+                                 std::vector<const char*>{"--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_sharding_color) {
@@ -1249,8 +1270,9 @@
       "\x1B[0;32m[  PASSED  ]\x1B[m 3 tests.\n";
   ASSERT_NE(-1, setenv("GTEST_TOTAL_SHARDS", "4", 1));
   ASSERT_NE(-1, setenv("GTEST_SHARD_INDEX", "0", 1));
-  ASSERT_NO_FATAL_FAILURE(Verify("SystemTestsShard*.DISABLED*", expected, 0,
-                                 std::vector<const char*>{"--gtest_color=yes"}));
+  ASSERT_NO_FATAL_FAILURE(
+      Verify("SystemTestsShard*.DISABLED*", expected, 0,
+             std::vector<const char*>{"--gtest_color=yes", "--no_gtest_format"}));
 }
 
 TEST_F(SystemTests, verify_sharding_error) {
