Refactor for AbstractTest: has abstract RunTest()

So that a list of tests objects can run their tests by a single call