Run a named unit test

This commit is contained in:
Vinnie Falco
2013-07-17 09:43:48 -07:00
parent b81fc4e0c8
commit 159aabd8d9
2 changed files with 35 additions and 3 deletions

View File

@@ -105,6 +105,33 @@ void UnitTests::resultsUpdated()
{
}
void UnitTests::runTest (String const& name)
{
results.clear();
resultsUpdated();
Array<UnitTest*>& tests = UnitTest::getAllTests ();
for (int i = 0; i < tests.size(); ++i)
{
UnitTest& test = *tests [i];
if (test.getName () == name)
{
try
{
test.performTest (this);
}
catch (...)
{
addFail ("An unhandled exception was thrown!");
}
break;
}
}
}
void UnitTests::runTests (const Array<UnitTest*>& tests)
{
results.clear();

View File

@@ -56,9 +56,10 @@ class UnitTests;
}
};
// Explicit template instantiation is required to make the unit
// test get automatically added to the set of unit tests.
template class UnitTestType <MyTest>;
// This makes the unit test available in the global list
// It doesn't have to be static.
//
static MyTest myTest;
@endcode
@@ -187,6 +188,10 @@ public:
/** Destructor. */
virtual ~UnitTests();
/** Run a particular test.
*/
void runTest (String const& name);
/** Runs a set of tests.
The tests are performed in order, and the results are logged. To run all the