#Introduction #Design TestScheduler run TestCase, and send messages to TestResult, TestResult tells TestListener asynchronously, Test Listener will generate a TestReport.