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.
virtual int run()
Run all children in sequence, using depth-first recursion.
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.
void report() const
If this object has no parent, report success and failure counters.
virtual void addFilePrefix(const std::string &prefix)
Prepend argument prefix to existing filePrefix.
void addChild(TestRunner &child)
Add an existing TestRunner as a child.
void setParent(TestRunner &parent)
Set another TestRunner as the parent.
virtual ~CompositeTestRunner()
Destructor.