Package de.gebit.integrity.runner
Interface TestRunner
-
- All Known Implementing Classes:
DefaultTestRunner
public interface TestRunnerThe test runner executes tests.- Author:
- Rene Schneider - initial API and implementation
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidinitialize(TestModel aModel, Map<String,String> someParameterizedConstants, TestRunnerCallback aCallback, String aResultLocale, Integer aRemotingPort, String aRemotingBindHost, Long aRandomSeed, String[] someCommandLineArguments)Initializes a fresh test runner instance.SuiteSummaryResultrun(SuiteDefinition aRootSuite, VariantDefinition aVariant, boolean aBlockForRemotingFlag)Executes a specified suite.voidshutdown(boolean anEmptyRemotingOutputQueueFlag)Shuts down this test runner instance.
-
-
-
Method Detail
-
initialize
void initialize(TestModel aModel, Map<String,String> someParameterizedConstants, TestRunnerCallback aCallback, String aResultLocale, Integer aRemotingPort, String aRemotingBindHost, Long aRandomSeed, String[] someCommandLineArguments) throws IOException
Initializes a fresh test runner instance. In case of forks, this method guarantees that when it exits without an exception, the master has successfully connected and injected the test scripts and a setlist into it.- Parameters:
aModel- the model to execute (may not contain any test script data yet in case of forks!)someParameterizedConstants- Maps fully qualified constant names (must be those with the "parameterized" keyword) to their desired value. This way, test execution can be parameterized from outside.aCallback- the callback to use to report test resultsaResultLocale- the locale to be used for the test result generation (if not provided, use the non-localized default strings, which usually are in English)aRemotingPort- the port on which the remoting server should listen, or null if remoting should be disabledaRemotingBindHost- the host name (or IP) to which the remoting server should bindaRandomSeed- the seed for theRandomNumberOperation(optional; randomly determined if not given).someCommandLineArguments- all command line arguments as given to the original Java programs' main routine (required for forking!)- Throws:
IOException- if the remoting server startup fails, or if the connection from the master process does not complete in time (for forks only)
-
run
SuiteSummaryResult run(SuiteDefinition aRootSuite, VariantDefinition aVariant, boolean aBlockForRemotingFlag)
Executes a specified suite. Designated starting point for test execution.- Parameters:
aRootSuite- the suite to executeaBlockForRemotingFlag- whether execution should pause before actually starting until execution is resumed via remoting- Returns:
- the suite execution result (this may also be null in case there is no tangible "result", like when the test runner is actually just running the part of a single fork within a bigger test suite - the partial result in this case is not relevant, but is automatically integrated in the result of the master process)
-
shutdown
void shutdown(boolean anEmptyRemotingOutputQueueFlag)
Shuts down this test runner instance.- Parameters:
anEmptyRemotingOutputQueueFlag- true if the remoting server shall be given time to send all remaining messages to clients while closing connections
-
-