cppunit/teamcity_cppunit.cpp (52 lines of code) (raw):

#include <sstream> #include "cppunit/Test.h" #include "cppunit/Exception.h" #include "teamcity_cppunit.h" using namespace CPPUNIT_NS; using namespace std; namespace jetbrains { namespace teamcity { TeamcityProgressListener::TeamcityProgressListener() { flowid = getFlowIdFromEnvironment(); } TeamcityProgressListener::TeamcityProgressListener(const std::string& _flowid) { flowid = _flowid; } TeamcityProgressListener::~TeamcityProgressListener() {} void TeamcityProgressListener::startTest(Test *test) { messages.testStarted(test->getName(), flowid); } static string sourceLine2string(const SourceLine &sline) { stringstream ss; ss << sline.fileName() << ":" << sline.lineNumber(); return ss.str(); } void TeamcityProgressListener::addFailure(const TestFailure &failure) { const Exception *e = failure.thrownException(); string details = e->message().details(); if (e->sourceLine().isValid()) { details.append(" at "); details.append(sourceLine2string(e->sourceLine())); details.append("\n"); } messages.testFailed( failure.failedTest()->getName(), e->message().shortDescription(), details, flowid ); } void TeamcityProgressListener::endTest(Test *test) { messages.testFinished(test->getName(), -1, flowid); } void TeamcityProgressListener::startSuite(Test *test) { messages.suiteStarted(test->getName(), flowid); } void TeamcityProgressListener::endSuite(Test *test) { messages.suiteFinished(test->getName(), flowid); } } }