158a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust/**
258a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * Copyright (C) 2010 the original author or authors.
358a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * See the notice.md file distributed with this work for additional
458a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * information regarding copyright ownership.
558a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust *
658a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * Licensed under the Apache License, Version 2.0 (the "License");
758a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * you may not use this file except in compliance with the License.
858a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * You may obtain a copy of the License at
958a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust *
1058a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust *     http://www.apache.org/licenses/LICENSE-2.0
1158a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust *
1258a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * Unless required by applicable law or agreed to in writing, software
1358a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * distributed under the License is distributed on an "AS IS" BASIS,
1458a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1558a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * See the License for the specific language governing permissions and
1658a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust * limitations under the License.
1758a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust */
1858a4af720c30d8dba072a96e3713577c8d30aeaeCedric Beust
19103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustpackage com.beust.jcommander.args;
200a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
21103fe3e72907f6f221dda8688e6e6d1b69ddeb73Cedric Beustimport com.beust.jcommander.Parameter;
220a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beustimport com.beust.jcommander.internal.Lists;
230a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
240a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beustimport java.util.List;
250a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
260a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beustpublic class CommandLineArgs {
270a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
280a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(description = "The XML suite files to run")
290a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public List<String> suiteFiles = Lists.newArrayList();
300a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
310a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = { "-log", "-verbose" }, description = "Level of verbosity")
320a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public Integer verbose;
330a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
340a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-groups", description = "Comma-separated list of group names to be run")
350a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String groups;
360a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
370a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-excludedgroups", description ="Comma-separated list of group names to be " +
380a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "run")
390a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String excludedGroups;
400a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
410a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-d", description ="Output directory")
420a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String outputDirectory;
430a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
440a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-junit", description ="JUnit mode")
450a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public Boolean junit = Boolean.FALSE;
460a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
470a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-listener", description = "List of .class files or list of class names" +
480a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      " implementing ITestListener or ISuiteListener")
490a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String listener;
500a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
510a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-methodselectors", description = "List of .class files or list of class " +
520a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "names implementing IMethodSelector")
530a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String methodSelectors;
540a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
550a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-objectfactory", description = "List of .class files or list of class " +
560a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "names implementing ITestRunnerFactory")
570a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String objectFactory;
580a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
590a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-parallel", description = "Parallel mode (methods, tests or classes)")
600a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String parallelMode;
610a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
620a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-configfailurepolicy", description = "Configuration failure policy (skip or continue)")
630a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String configFailurePolicy;
640a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
650a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-threadcount", description = "Number of threads to use when running tests " +
660a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "in parallel")
670a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public Integer threadCount;
680a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
690a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-dataproviderthreadcount", description = "Number of threads to use when " +
700a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "running data providers")
710a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public Integer dataProviderThreadCount;
720a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
730a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-suitename", description = "Default name of test suite, if not specified " +
740a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "in suite definition file or source code")
750a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String suiteName;
760a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
770a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-testname", description = "Default name of test, if not specified in suite" +
780a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust      "definition file or source code")
790a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String testName;
800a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
810a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-reporter", description = "Extended configuration for custom report listener")
820a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String reporter;
830a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
840a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  /**
850a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust   * Used as map key for the complete list of report listeners provided with the above argument
860a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust   */
870a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-reporterslist")
880a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String reportersList;
890a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
900a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-usedefaultlisteners", description = "Whether to use the default listeners")
910a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String useDefaultListeners = "true";
920a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
930a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-skipfailedinvocationcounts")
940a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public Boolean skipFailedInvocationCounts;
950a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
960a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-testclass", description = "The list of test classes")
970a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String testClass;
980a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
990a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-testnames", description = "The list of test names to run")
1000a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String testNames;
1010a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1020a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-testjar", description = "")
1030a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String testJar;
1040a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1050a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-testRunFactory", description = "")
1060a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String testRunFactory;
1070a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1080a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-port", description = "The port")
1090a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public Integer port;
1100a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1110a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-host", description = "The host")
1120a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String host;
1130a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1140a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-master", description ="Host where the master is")
1150a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String master;
1160a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1170a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  @Parameter(names = "-slave", description ="Host where the slave is")
1180a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust  public String slave;
1190a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust
1200a0d8099f7e0c2f2f79e6f9233bcfeb7147995e6Cedric Beust}
121