From fe6d1a5838f6fed188694e7d509e90de66ece5b1 Mon Sep 17 00:00:00 2001 From: Phil Nash Date: Wed, 21 Nov 2012 18:04:10 +0000 Subject: [PATCH] Write stdOut/stdErr for each test car in JUnit reporter (for GitHub #5) --- include/reporters/catch_reporter_junit.hpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/include/reporters/catch_reporter_junit.hpp b/include/reporters/catch_reporter_junit.hpp index e72b7981..39c6e92a 100644 --- a/include/reporters/catch_reporter_junit.hpp +++ b/include/reporters/catch_reporter_junit.hpp @@ -35,6 +35,8 @@ namespace Catch { std::string m_status; std::string m_className; std::string m_name; + std::string m_stdOut; + std::string m_stdErr; std::vector m_testStats; }; @@ -148,6 +150,9 @@ namespace Catch { } virtual void EndTestCase( const Catch::TestCaseInfo&, const Totals&, const std::string& stdOut, const std::string& stdErr ) { + TestCaseStats& testCaseStats = m_currentStats->m_testCaseStats.back(); + testCaseStats.m_stdOut = stdOut; + testCaseStats.m_stdErr = stdErr; if( !stdOut.empty() ) m_stdOut << stdOut << "\n"; if( !stdErr.empty() ) @@ -198,6 +203,13 @@ namespace Catch { xml.writeAttribute( "time", "tbd" ); OutputTestResult( xml, *it ); + + std::string stdOut = trim( it->m_stdOut ); + if( !stdOut.empty() ) + xml.scopedElement( "system-out" ).writeText( stdOut ); + std::string stdErr = trim( it->m_stdErr ); + if( !stdErr.empty() ) + xml.scopedElement( "system-err" ).writeText( stdErr ); } }