01: /*
02:
03: Derby - Class org.apache.derbyTesting.unitTests.harness.UnitTestManager
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to You under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derbyTesting.unitTests.harness;
23:
24: /**
25: *
26: * The UnitTestManager provides a mechanism for
27: * registering subsystem tests and then invoking
28: * them. It can produce an output report specifying
29: * the results, the timing, and any output produced
30: * by the tests. If the run fails, the invoker of
31: * the tests should shut down the system.
32: */
33: public interface UnitTestManager {
34: public static final String MODULE = "org.apache.derbyTesting.unitTests.harness.UnitTestManager";
35:
36: /**
37: * Debug flag to allow the cloudscape system running the tests
38: * to run forever. By default test systems are killed
39: * after an interval of T_Bomb.DEFAULT_BOMB_DELAY to avoid tests
40: * hanging.
41: */
42: public static final String RUN_FOREVER = "RunForever";
43:
44: /**
45: * Debug flag to skip unit tests.
46: */
47: public static final String SKIP_UNIT_TESTS = "SkipUnitTests";
48:
49: /**
50: * register an object that has the UnitTest interface,
51: * marking what type it has and its duration.
52: * Tests are run in the order they were registered.
53: * <p>
54: *
55: */
56: public void registerTest(UnitTest objectToTest, String testName);
57:
58: /**
59: * run the tests. Tests are run
60: * in the order they were registered, filtered by type
61: * and duration set for the unit test manager.
62: */
63: public boolean runTests();
64:
65: /**
66: * Convenience function to set the test type and duration
67: * for the UnitTestManager and then run the tests.
68: * <p>
69: * @see UnitTestConstants
70: */
71: public boolean runTests(int testType, int testDuration);
72:
73: /**
74: * the test duration is set. This will be used when the
75: * tests are run; no tests with duration more than
76: * specified will be run.
77: */
78: public void setTestDuration(int testDuration);
79:
80: /**
81: * the test duration is set. This will be used when the
82: * tests are run; no tests with duration more than
83: * specified will be run.
84: */
85: public void setTestType(int testType);
86:
87: /**
88: * specify whether performance statistics should be
89: * gathered when tests are run. The manager will collect
90: * the duration of each test, and will compare it to
91: * any previous runs it may have done of that test.
92: */
93: public void setPerformanceReportOn(boolean performanceReportOn);
94:
95: }
|