gtest_fail_if_no_test_selected: Rephrase error message.

Sharded tests interact awkwardly with --gtest_fail_if_no_test_selected, but we
can't speak clearly enough to the use cases to complicate the mental model, so
instead we attempt to clarify the simplest approach to debugging a single test
when sharding and --gtest_fail_if_no_test_selected are both in use: unset the
flag.

PiperOrigin-RevId: 829609266
Change-Id: I090d5bfac979171532249e9312feef8d9aad5f16
This commit is contained in:
David Pizzuto 2025-11-07 16:02:11 -08:00 committed by Copybara-Service
parent 6ec14dfd8c
commit dedab73a68

View File

@ -6088,15 +6088,17 @@ bool UnitTestImpl::RunAllTests() {
repeater->OnEnvironmentsTearDownEnd(*parent_); repeater->OnEnvironmentsTearDownEnd(*parent_);
} }
} else if (GTEST_FLAG_GET(fail_if_no_test_selected)) { } else if (GTEST_FLAG_GET(fail_if_no_test_selected)) {
// If there were no tests to run, bail if we were requested to be strict. // If there were no tests to run, bail if we were requested to be
// strict.
constexpr char kNoTestsSelectedMessage[] = constexpr char kNoTestsSelectedMessage[] =
"No tests were selected to run. Please make sure at least one test " "No tests ran. Check that tests exist and are not disabled or "
"exists and is not disabled! If the test is sharded, you may have " "filtered out.\n\n"
"defined more shards than test cases, which is wasteful. If you also " "For sharded runs, this error indicates an empty shard. This can "
"defined --gtest_filter, that filter is taken into account, so " "happen if you have more shards than tests, or if --gtest_filter "
"shards with no matching test cases will hit this error. Either " "leaves a shard with no tests.\n\n"
"disable sharding, set --gtest_fail_if_no_test_selected=false, or " "To permit empty shards (e.g., when debugging with a filter), "
"remove the filter to resolve this error."; "specify \n"
"--gtest_fail_if_no_test_selected=false.";
ColoredPrintf(GTestColor::kRed, "%s\n", kNoTestsSelectedMessage); ColoredPrintf(GTestColor::kRed, "%s\n", kNoTestsSelectedMessage);
return false; return false;
} }