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) void UnitTests::runTests (const Array<UnitTest*>& tests)
{ {
results.clear(); results.clear();

View File

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