Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.nativeapp.runner;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.log4j.Logger;
- import com.clioption.CliParser;
- import com.clioption.SuiteInvocationCountOption;
- import com.clioption.TestNgGroupOption;
- import com.clioption.TestNgSuiteOption;
- import com.clioption.TestNgSuiteThreadCountOption;
- import com.clioption.TestNgThreadCountOption;
- import com.nativeapp.mobiledriver.device.Device;
- import com.nativeapp.mobiledriver.device.DeviceStorage;
- import com.nativeapp.runner.clioption.AppiumServerOption;
- import com.nativeapp.runner.clioption.DeviceNameOption;
- import com.nativeapp.runner.clioption.DriverTypeOption;
- import com.nativeapp.runner.clioption.MRSSOption;
- import com.nativeapp.runner.clioption.OSNameOption;
- import com.nativeapp.runner.clioption.ProxyPortOption;
- import com.nativeapp.runner.clioption.RerunTestOption;
- import com.nativeapp.runner.clioption.UdidOption;
- import com.runner.Runner;
- public class TestRunner extends Runner {
- private static final Logger LOGGER = Logger.getLogger(TestRunner.class);
- public TestRunner(String[] args) {
- super(args);
- }
- public static void main(String[] args) {
- Runner tr;
- try {
- tr = new TestRunner(args);
- Runtime.getRuntime().addShutdownHook(new ClearShutdownHook());
- @SuppressWarnings("rawtypes")
- List<Class> listeners = new ArrayList<Class>();
- if (DeviceConfig.isRerunTests()) {
- listeners.add(RerunTestListener.class);
- }
- listeners.add(CustomXMLReporter.class);
- listeners.add(CustomHTMLReporter.class);
- listeners.add(SuiteListener.class);
- tr.setListeners(listeners);
- // ScreenshotUtils.setScreenshotDir("test-output");
- tr.run();
- } catch (Exception e) {
- LOGGER.fatal(e.getMessage(), e);
- // throw new RuntimeException(e);
- }
- finally {
- RerunTestListener.rerunFailedTests(args);
- int exitCode = BuildResult.getExitResult();
- LOGGER.info("Exit with code : " + exitCode);
- System.exit(exitCode);
- }
- }
- public static class ClearShutdownHook extends Thread {
- private static final Logger LOGGER = Logger.getLogger(TestRunner.class);
- @Override
- public void run() {
- LOGGER.info("Running shutdown hook kill appium-server, shutdown proxy servers...");
- for (Device device : DeviceStorage.getDevices()) {
- try {
- // TODO for iOS
- // MacExecutor.switchSystemProxy(SystemProxyState.OFF,
- // device
- // .getAppiumServer(), device.getProxyType().getPort());
- device.getAppiumProcess().killMe();
- } catch (Exception e) {
- LOGGER.info("Exception while killing appium servers: "
- + e.getMessage());
- }
- }
- for (Device device : DeviceStorage.getDevices()) {
- device.getProxyRunner().stopMe();
- }
- }
- }
- public void addCommandLineOptions() {
- CliParser.getCmdLineOptions().add(new TestNgSuiteOption());
- CliParser.getCmdLineOptions().add(new TestNgGroupOption());
- CliParser.getCmdLineOptions().add(new TestNgThreadCountOption());
- CliParser.getCmdLineOptions().add(new SuiteInvocationCountOption());
- CliParser.getCmdLineOptions().add(new RerunTestOption());
- CliParser.getCmdLineOptions().add(new DeviceNameOption());
- CliParser.getCmdLineOptions().add(new UdidOption());
- CliParser.getCmdLineOptions().add(new ProxyPortOption());
- CliParser.getCmdLineOptions().add(new OSNameOption());
- CliParser.getCmdLineOptions().add(new AppiumServerOption());
- CliParser.getCmdLineOptions().add(new DriverTypeOption());
- CliParser.getCmdLineOptions().add(new MRSSOption());
- CliParser.getCmdLineOptions().add(new TestNgSuiteThreadCountOption());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement