There are two kinds of StarUnits in the world.
In the first type, you must "register" every test_* method with its TestCase, register every TestCase with a TestSuite, and drop the root of this tree into a Run method.
In the second type, the test runner scans the current folder for modules with _test on the end of their base name, scans each module for classes with _test on their end, and scans each class for methods that start with test_. Then the TestRunner builds the cases and suites needed, dyna-links to them, and runs them.
Auto-suites for languages without copious reflection (such as C++) may use 'grep' and a sternly worded style guide.