Makes gtest report failures to Visual Studio's Output window. Based on code by Alexander Demin.

This commit is contained in:
zhanyong.wan 2009-07-15 19:01:51 +00:00
parent 8bdb31e054
commit 3a47ddf8ea

View File

@ -2556,10 +2556,19 @@ static internal::String PrintTestPartResultToString(
}
// Prints a TestPartResult.
static void PrintTestPartResult(
const TestPartResult& test_part_result) {
printf("%s\n", PrintTestPartResultToString(test_part_result).c_str());
static void PrintTestPartResult(const TestPartResult& test_part_result) {
const internal::String& result =
PrintTestPartResultToString(test_part_result);
printf("%s\n", result.c_str());
fflush(stdout);
#if GTEST_OS_WINDOWS
// If the test program runs in Visual Studio or a debugger, the
// following states add the test part result message to the Output
// window such that the user can double-click on it to jump to the
// corresponding source code location; otherwise they do nothing.
::OutputDebugStringA(result.c_str());
::OutputDebugStringA("\n");
#endif
}
// class PrettyUnitTestResultPrinter
@ -3426,7 +3435,8 @@ void UnitTest::AddTestPartResult(TestPartResultType result_type,
for (int i = 0; i < impl_->gtest_trace_stack()->size(); i++) {
const internal::TraceInfo& trace =
impl_->gtest_trace_stack()->GetElement(i);
msg << "\n" << trace.file << ":" << trace.line << ": " << trace.message;
msg << "\n" << internal::FormatFileLocation(trace.file, trace.line)
<< " " << trace.message;
}
}