示例#1
0
CppUnit::Test* FindTestInTestSuite(CppUnit::Test* tests, const std::string& name) {
    // try to see if this is a TestSuite
    CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests);
    CppUnit::Test* testFound = NULL;

    // it's a suite, check all components
    if (testSuite != NULL) {
        if (testSuite->getName() == name) {
            return testSuite;
        } else {
            std::vector<CppUnit::Test*> allTestsVector = testSuite->getTests();
            std::vector<CppUnit::Test*>::iterator testIterator;
            for (testIterator = allTestsVector.begin();
                 testIterator != allTestsVector.end();
                 testIterator++) {
                testFound = FindTestInTestSuite(*testIterator, name);
                // abort the search if found
                if (testFound) {
                    return testFound;
                }
            }
        }
    } else {
        // it's a test, get the name and test
        if (tests->getName() == name) {
            return tests;
        }
    }
    return NULL;
}
示例#2
0
CppUnit::Test* GetTest(CppUnit::Test* tests, const std::string& name)
{

  CppUnit::TestSuite* testSuite = dynamic_cast<CppUnit::TestSuite *>(tests);

  CppUnit::Test* returnTest = NULL;

  if (testSuite)
  {
    if (testSuite->getName() == name)
    {
      return (testSuite);
    }
    else
    {
      std::vector<CppUnit::Test*> allTests = testSuite->getTests();
      std::vector<CppUnit::Test*>::iterator testi;
      for (testi = allTests.begin();
           testi != allTests.end();
           testi++)
      {
        returnTest = GetTest(*testi, name);
        if (returnTest)
          return (returnTest);
      }
    }
  }
  else
  {
    if (tests->getName() == name)
    {
      return (tests);
    }
  }
  return NULL;
};