1ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beustpackage org.testng; 2ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 3ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beustimport com.beust.jcommander.Parameter; 48d66b5b025416a08ee2ef9072dca52ea0995b0b5Cédric Beustimport com.beust.jcommander.converters.CommaParameterSplitter; 5ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 6aae11d5eb8df906691ce4517a6c59a6bc388be00Cédric Beustimport org.testng.collections.Lists; 789801bb69bb57d6836189c381ad4950b29534c4cJulien Herrimport org.testng.xml.XmlSuite; 8aae11d5eb8df906691ce4517a6c59a6bc388be00Cédric Beust 9e1a578580e691232c156a8d8093583bd99bd7f96Cédric Beustimport java.util.ArrayList; 108085805131c76156b59d12987d1593beed7a184dCédric Beustimport java.util.List; 11ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 128085805131c76156b59d12987d1593beed7a184dCédric Beustpublic class CommandLineArgs { 13ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 148085805131c76156b59d12987d1593beed7a184dCédric Beust @Parameter(description = "The XML suite files to run") 158085805131c76156b59d12987d1593beed7a184dCédric Beust public List<String> suiteFiles = Lists.newArrayList(); 16ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 1755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String LOG = "-log"; 1855cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String VERBOSE = "-verbose"; 1955cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = { LOG, VERBOSE }, description = "Level of verbosity") 208085805131c76156b59d12987d1593beed7a184dCédric Beust public Integer verbose; 21ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 2255cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String GROUPS = "-groups"; 2355cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = GROUPS, description = "Comma-separated list of group names to be run") 248085805131c76156b59d12987d1593beed7a184dCédric Beust public String groups; 25ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 2655cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String EXCLUDED_GROUPS = "-excludegroups"; 2755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = EXCLUDED_GROUPS, description ="Comma-separated list of group names to " 2838597c83f2ebe77ef4df9a62251613a2a279a470Cédric Beust + " exclude") 298085805131c76156b59d12987d1593beed7a184dCédric Beust public String excludedGroups; 3063341f94f2487441bb8487e67b97a81a0a9b5fd8nullin 3155cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String OUTPUT_DIRECTORY = "-d"; 3255cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = OUTPUT_DIRECTORY, description ="Output directory") 338085805131c76156b59d12987d1593beed7a184dCédric Beust public String outputDirectory; 3463341f94f2487441bb8487e67b97a81a0a9b5fd8nullin 3555cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String JUNIT = "-junit"; 3655cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = JUNIT, description ="JUnit mode") 378085805131c76156b59d12987d1593beed7a184dCédric Beust public Boolean junit = Boolean.FALSE; 38ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 391876355ae9a570f93b2222d9d03599712d732ca1Lukas Jungmann public static final String MIXED = "-mixed"; 401876355ae9a570f93b2222d9d03599712d732ca1Lukas Jungmann @Parameter(names = MIXED, description ="Mixed mode - autodetect the type of current test" + 411876355ae9a570f93b2222d9d03599712d732ca1Lukas Jungmann " and run it with appropriate runner") 421876355ae9a570f93b2222d9d03599712d732ca1Lukas Jungmann public Boolean mixed = Boolean.FALSE; 431876355ae9a570f93b2222d9d03599712d732ca1Lukas Jungmann 4455cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String LISTENER = "-listener"; 4555cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = LISTENER, description = "List of .class files or list of class names" + 46ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust " implementing ITestListener or ISuiteListener") 478085805131c76156b59d12987d1593beed7a184dCédric Beust public String listener; 48ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 4955cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String METHOD_SELECTORS = "-methodselectors"; 5055cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = METHOD_SELECTORS, description = "List of .class files or list of class " + 5163341f94f2487441bb8487e67b97a81a0a9b5fd8nullin "names implementing IMethodSelector") 528085805131c76156b59d12987d1593beed7a184dCédric Beust public String methodSelectors; 53ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 5455cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String OBJECT_FACTORY = "-objectfactory"; 5555cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = OBJECT_FACTORY, description = "List of .class files or list of class " + 5663341f94f2487441bb8487e67b97a81a0a9b5fd8nullin "names implementing ITestRunnerFactory") 578085805131c76156b59d12987d1593beed7a184dCédric Beust public String objectFactory; 58ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 5955cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String PARALLEL= "-parallel"; 6055cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = PARALLEL, description = "Parallel mode (methods, tests or classes)") 6189801bb69bb57d6836189c381ad4950b29534c4cJulien Herr public XmlSuite.ParallelMode parallelMode; 6263341f94f2487441bb8487e67b97a81a0a9b5fd8nullin 6355cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String CONFIG_FAILURE_POLICY = "-configfailurepolicy"; 6455cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = CONFIG_FAILURE_POLICY , description = "Configuration failure policy (skip or continue)") 6562a82c6aa5725c9e9d600af5ee06a5852100208cnullin public String configFailurePolicy; 66ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 6755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String THREAD_COUNT = "-threadcount"; 6855cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = THREAD_COUNT, description = "Number of threads to use when running tests " + 69ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust "in parallel") 708085805131c76156b59d12987d1593beed7a184dCédric Beust public Integer threadCount; 71ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 7255cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String DATA_PROVIDER_THREAD_COUNT = "-dataproviderthreadcount"; 7355cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = DATA_PROVIDER_THREAD_COUNT, description = "Number of threads to use when " + 748085805131c76156b59d12987d1593beed7a184dCédric Beust "running data providers") 758085805131c76156b59d12987d1593beed7a184dCédric Beust public Integer dataProviderThreadCount; 76ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 7755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String SUITE_NAME = "-suitename"; 7855cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = SUITE_NAME, description = "Default name of test suite, if not specified " + 79ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust "in suite definition file or source code") 808085805131c76156b59d12987d1593beed7a184dCédric Beust public String suiteName; 81ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 8255cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String TEST_NAME = "-testname"; 8355cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = TEST_NAME, description = "Default name of test, if not specified in suite" + 84ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust "definition file or source code") 858085805131c76156b59d12987d1593beed7a184dCédric Beust public String testName; 86ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 8755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String REPORTER = "-reporter"; 8855cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = REPORTER, description = "Extended configuration for custom report listener") 898085805131c76156b59d12987d1593beed7a184dCédric Beust public String reporter; 90ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 9155cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String USE_DEFAULT_LISTENERS = "-usedefaultlisteners"; 9255cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = USE_DEFAULT_LISTENERS, description = "Whether to use the default listeners") 9307b4d658cfb41946eb7785ffec5f04a488161f79Cédric Beust public String useDefaultListeners = "true"; 948085805131c76156b59d12987d1593beed7a184dCédric Beust 955626b136bcb854e723114aaf5658164034081063Cédric Beust public static final String SKIP_FAILED_INVOCATION_COUNTS = "-skipfailedinvocationcounts"; 965626b136bcb854e723114aaf5658164034081063Cédric Beust @Parameter(names = SKIP_FAILED_INVOCATION_COUNTS, hidden = true) 978085805131c76156b59d12987d1593beed7a184dCédric Beust public Boolean skipFailedInvocationCounts; 988085805131c76156b59d12987d1593beed7a184dCédric Beust 9955cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String TEST_CLASS = "-testclass"; 10055cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = TEST_CLASS, description = "The list of test classes") 1018085805131c76156b59d12987d1593beed7a184dCédric Beust public String testClass; 1028085805131c76156b59d12987d1593beed7a184dCédric Beust 10355cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String TEST_NAMES = "-testnames"; 10455cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = TEST_NAMES, description = "The list of test names to run") 1058085805131c76156b59d12987d1593beed7a184dCédric Beust public String testNames; 1068085805131c76156b59d12987d1593beed7a184dCédric Beust 10755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String TEST_JAR = "-testjar"; 10855cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = TEST_JAR, description = "A jar file containing the tests") 1098085805131c76156b59d12987d1593beed7a184dCédric Beust public String testJar; 110ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 1118ad7bc9b3e59f16cad1aa4f7d74ddc2ef16de807Cédric Beust public static final String XML_PATH_IN_JAR = "-xmlpathinjar"; 1128ad7bc9b3e59f16cad1aa4f7d74ddc2ef16de807Cédric Beust public static final String XML_PATH_IN_JAR_DEFAULT = "testng.xml"; 1138ad7bc9b3e59f16cad1aa4f7d74ddc2ef16de807Cédric Beust @Parameter(names = XML_PATH_IN_JAR, description = "The full path to the xml file inside the jar file (only valid if -testjar was specified)") 1148ad7bc9b3e59f16cad1aa4f7d74ddc2ef16de807Cédric Beust public String xmlPathInJar = XML_PATH_IN_JAR_DEFAULT; 1158ad7bc9b3e59f16cad1aa4f7d74ddc2ef16de807Cédric Beust 1161764d0119a429f4b6cef56136f8e774edd6f31aeCédric Beust public static final String TEST_RUNNER_FACTORY = "-testrunfactory"; 1171764d0119a429f4b6cef56136f8e774edd6f31aeCédric Beust @Parameter(names = { TEST_RUNNER_FACTORY, "-testRunFactory" }, 1181764d0119a429f4b6cef56136f8e774edd6f31aeCédric Beust description = "The factory used to create tests") 119ebadb61b818627fe0e9de16896c2e3215bcb0328Cédric Beust public String testRunnerFactory; 120ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 12155cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String PORT = "-port"; 12255cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = PORT, description = "The port") 1238085805131c76156b59d12987d1593beed7a184dCédric Beust public Integer port; 124ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 12555cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String HOST = "-host"; 126be0d782fd06c54164341ab7f28868f1819d8021aCédric Beust @Parameter(names = HOST, description = "The host", hidden = true) 1278085805131c76156b59d12987d1593beed7a184dCédric Beust public String host; 128ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 12955cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String MASTER = "-master"; 130be0d782fd06c54164341ab7f28868f1819d8021aCédric Beust @Parameter(names = MASTER, description = "Host where the master is", hidden = true) 1318085805131c76156b59d12987d1593beed7a184dCédric Beust public String master; 132ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 13355cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String SLAVE = "-slave"; 134be0d782fd06c54164341ab7f28868f1819d8021aCédric Beust @Parameter(names = SLAVE, description = "Host where the slave is", hidden = true) 1358085805131c76156b59d12987d1593beed7a184dCédric Beust public String slave; 136ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust 13755cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust public static final String METHODS = "-methods"; 13855cd8fe791efec01c80a0199de9d187d2c836801Cédric Beust @Parameter(names = METHODS, description = "Comma separated of test methods", 1398d66b5b025416a08ee2ef9072dca52ea0995b0b5Cédric Beust splitter = CommaParameterSplitter.class) 14010c223b7aa6bf34778079bb5ee1a494c83cd1239Ryan Schmitt public List<String> commandLineMethods = new ArrayList<>(); 141687eae6b91d5695225aa4e989687fdac5ff050a4Cédric Beust 142687eae6b91d5695225aa4e989687fdac5ff050a4Cédric Beust public static final String SUITE_THREAD_POOL_SIZE = "-suitethreadpoolsize"; 143687eae6b91d5695225aa4e989687fdac5ff050a4Cédric Beust public static final Integer SUITE_THREAD_POOL_SIZE_DEFAULT = 1; 144687eae6b91d5695225aa4e989687fdac5ff050a4Cédric Beust @Parameter(names = SUITE_THREAD_POOL_SIZE, description = "Size of the thread pool to use" 14563341f94f2487441bb8487e67b97a81a0a9b5fd8nullin + " to run suites") 146687eae6b91d5695225aa4e989687fdac5ff050a4Cédric Beust public Integer suiteThreadPoolSize = SUITE_THREAD_POOL_SIZE_DEFAULT; 147fcfd8ccf5312966160cb07db5502e88265910deanullin 148fcfd8ccf5312966160cb07db5502e88265910deanullin public static final String RANDOMIZE_SUITES = "-randomizesuites"; 149fcfd8ccf5312966160cb07db5502e88265910deanullin @Parameter(names = RANDOMIZE_SUITES, hidden = true, 150fcfd8ccf5312966160cb07db5502e88265910deanullin description = "Whether to run suites in same order as specified in XML or not") 1515c83f94d8ab458c24597d02814d75cf247d2b0e5nullin public Boolean randomizeSuites = Boolean.FALSE; 152aae11d5eb8df906691ce4517a6c59a6bc388be00Cédric Beust 153aae11d5eb8df906691ce4517a6c59a6bc388be00Cédric Beust public static final String DEBUG = "-debug"; 154aae11d5eb8df906691ce4517a6c59a6bc388be00Cédric Beust @Parameter(names = DEBUG, hidden = true, description = "Used to debug TestNG") 155aae11d5eb8df906691ce4517a6c59a6bc388be00Cédric Beust public Boolean debug = Boolean.FALSE; 1568ad7bc9b3e59f16cad1aa4f7d74ddc2ef16de807Cédric Beust 157ecb4654924bf8f42f32292f250bc6300f52b8fe6Cédric Beust} 158