Package com.google.jstestdriver

Source Code of com.google.jstestdriver.Main

/*
* Copyright 2012 Google Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/

package com.google.jstestdriver;

import com.google.inject.Module;
import com.google.jstestdriver.browser.BrowserPanicException;
import com.google.jstestdriver.config.CmdLineFlags;
import com.google.jstestdriver.config.CmdLineFlagsFactory;
import com.google.jstestdriver.config.ConfigurationException;
import com.google.jstestdriver.config.InvalidFlagException;
import com.google.jstestdriver.config.UnreadableFilesException;
import com.google.jstestdriver.embedded.JsTestDriverBuilder;
import com.google.jstestdriver.guice.TestResultPrintingModule.TestResultPrintingInitializer;
import com.google.jstestdriver.util.RetryException;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.List;
import java.util.logging.LogManager;

/**
* Main class to be executed from the command line.
* @author corysmith@google.com (Cory Smith)
*
*/
public class Main {

  private static final Logger logger = LoggerFactory.getLogger(JsTestDriver.class);

  public static void main(String[] args) {
    try {
      // pre-parse parsing... These are the flags
      // that must be dealt with before we parse the flags.
      CmdLineFlags cmdLineFlags = new CmdLineFlagsFactory().create(args);
      List<Plugin> cmdLinePlugins = cmdLineFlags.getPlugins();
 
      // configure logging before we start seriously processing.
      LogManager.getLogManager().readConfiguration(cmdLineFlags.getRunnerMode().getLogConfig());
 
 
      final PluginLoader pluginLoader = new PluginLoader();
 
      // load all the command line plugins.
      final List<Module> pluginModules = pluginLoader.load(cmdLinePlugins);
      logger.debug("loaded plugins %s", pluginModules);
 
      JsTestDriverBuilder builder = new JsTestDriverBuilder();
      builder.addBasePaths(cmdLineFlags.getBasePath());
      builder.setConfigurationSource(cmdLineFlags.getConfigurationSource());
      builder.addPluginModules(pluginModules);
      builder.withPluginInitializer(TestResultPrintingInitializer.class);
      builder.setRunnerMode(cmdLineFlags.getRunnerMode());
      builder.setFlags(cmdLineFlags.getUnusedFlagsAsArgs());
      JsTestDriver jstd = builder.build();
      jstd.runConfiguration();
 
      logger.info("Finished action run.");
    } catch (InvalidFlagException e) {
      e.printErrorMessages(System.out);
      CmdLineFlags.printUsage(System.out);
      System.exit(1);
    } catch (UnreadableFilesException e) {
      System.out.println("Configuration Error: \n" + e.getMessage());
      logger.debug("Details: {}", e);
      System.exit(1);
    } catch (ConfigurationException e) {
      System.out.println("Configuration Error: \n" + e.getMessage());
      logger.debug("Details: {}", e);
      System.exit(1);
    } catch (RetryException e) {
      System.out.println("Tests failed due to unexpected environment issue: "
          + e.getCause().getMessage());
      System.exit(1);
    } catch (FailureException e) {
      System.out.println("Tests failed: " + e.getMessage());
      System.exit(1);
    } catch (BrowserPanicException e) {
      System.out.println("Test run failed due to unresponsive browser: " + e);
      System.exit(1);
    } catch (Exception e) {
      logger.debug("Error {}", e);
      e.printStackTrace();
      System.out.println("Unexpected Runner Condition: " + e.getMessage()
          + "\n Use --runnerMode DEBUG for more information.");
      System.exit(1);
    }
  }
}
TOP

Related Classes of com.google.jstestdriver.Main

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.