Java Reference
In-Depth Information
Our second solution, in listing 12.15, creates a
JU
nit
Suite
class to manage a Sele-
nium server. This custom suite will start the Selenium server, run all the test classes in
the suite, and then stop the server.
Listing 12.15
A test suite to manage a Selenium server
[...]
public class
ManagedSeleniumServerSuite
extends
Suite {
private static
SeleniumServer seleniumServer;
B
public static void
startSeleniumServer()
throws
Exception {
ManagedSeleniumServerSuite.stopSeleniumServer();
seleniumServer =
new
SeleniumServer();
seleniumServer.start();
}
C
public static void
stopSeleniumServer() {
if
(seleniumServer !=
null
) {
seleniumServer.stop();
seleniumServer =
null
;
}
}
public
ManagedSeleniumServerSuite(Class<?> klass, Class<?>[]
suiteClasses)
throws
InitializationError {
super
(klass, suiteClasses);
}
public
ManagedSeleniumServerSuite(Class<?> klass, List<Runner>
runners)
throws
InitializationError {
super(
klass, runners);
}
D
public
ManagedSeleniumServerSuite(Class<?> klass, RunnerBuilder
builder
) throws
InitializationError {
super
(klass, builder);
}
public
ManagedSeleniumServerSuite(RunnerBuilder builder, Class<?>
klass, Class<?>[] suiteClasses)
throws
InitializationError {
super
(builder, klass, suiteClasses);
}
public
ManagedSeleniumServerSuite(RunnerBuilder builder, Class<?>[]
classes)
throws
InitializationError {
super
(builder, classes);
}
E
@Override
public void
run(
final
RunNotifier notifier) {
EachTestNotifier testNotifier =
new
EachTestNotifier(notifier,
this
.getDescription());
try
{
ManagedSeleniumServerSuite.startSeleniumServer();
Statement statement =
this
.classBlock(notifier);
statement.evaluate();
F