module tests.pass.register; import unit_threaded; //won't be registered, impossible to instantiate class BaseClass: TestCase { override void test() { doTest(); } abstract void doTest(); } //will be registered since actually has 'test' method class DerivedClass: BaseClass{ override void doTest() { 2.shouldEqual(2); } } private void testPrivate() { //private function, won't get run null.shouldNotBeNull; //won't run, can't fail } private class PrivateTest: TestCase { override void test() { null.shouldNotBeNull; //won't run, can't fail } }