1#ifndef COMPOSITE_TEST_RUNNER_H
2#define COMPOSITE_TEST_RUNNER_H
11#include "TestRunner.h"
85 std::vector<TestRunner*> children_;
88 std::vector<TestRunner*> ownedChildren_;
100 for (i = 0; i < children_.size(); ++i) {
101 delete ownedChildren_[i];
110 children_.push_back(&child);
119 children_.push_back(childPtr);
120 ownedChildren_.push_back(childPtr);
128 const std::string& prefix)
140 for (
unsigned int i = 0; i < children_.size(); ++i) {
141 children_[i]->addFilePrefix(prefix);
150 for (
unsigned int i = 0; i < children_.size(); ++i) {
164#define TEST_COMPOSITE_BEGIN(CompositeClass) \
165 class CompositeClass : public CompositeTestRunner { public: \
176#define TEST_COMPOSITE_ADD_UNIT(UnitTestClass) \
177 addChild(new TEST_RUNNER(UnitTestClass));
188#define TEST_COMPOSITE_ADD_CHILD(TestRunner, Prefix) \
189 addChild(new TestRunner, Prefix);
196#define TEST_COMPOSITE_END } };
A TestRunner comprised of one or more child TestRunners.
void addChild(TestRunner &child)
Add an existing TestRunner as a child.
virtual int run()
Run all children in sequence, using depth-first recursion.
virtual ~CompositeTestRunner()
Destructor.
virtual void addFilePrefix(const std::string &prefix)
Prepend argument prefix to existing filePrefix.
Abstract base class for classes that run tests.
int nFailure() const
Return number of failed tests run.
virtual void addFilePrefix(const std::string &prefix)
Prepend argument prefix to existing filePrefix.
void report() const
If this object has no parent, report success and failure counters.
void setParent(TestRunner &parent)
Set another TestRunner as the parent.