test_class.declarator: INTELLIJ1 = "com.intellij.rt.execution.application.AppMain cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --name ^get users and then get first by id$ --glue com.intuit.karate /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/java/com/intuit/karate/junit4/demos/users.feature"
test_class.modifier: private static final
test_class.original_string: private static final String INTELLIJ1 = "com.intellij.rt.execution.application.AppMain cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --name ^get users and then get first by id$ --glue com.intuit.karate /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/java/com/intuit/karate/junit4/demos/users.feature";
test_class.type: String
test_class.var_name: INTELLIJ1
test_class.declarator: INTELLIJ2 = "cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --glue com.intuit.karate /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/java/com/intuit/karate/junit4/demos"
test_class.modifier: private static final
test_class.original_string: private static final String INTELLIJ2 = "cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --glue com.intuit.karate /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/java/com/intuit/karate/junit4/demos";
test_class.type: String
test_class.var_name: INTELLIJ2
test_class.declarator: INTELLIJ3 = "cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --name ^create and retrieve a cat$ --glue com.intuit.karate /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/java/com/intuit/karate/junit4/demos/users.feature"
test_class.modifier: private static final
test_class.original_string: private static final String INTELLIJ3 = "cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --name ^create and retrieve a cat$ --glue com.intuit.karate /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/java/com/intuit/karate/junit4/demos/users.feature";
test_class.type: String
test_class.var_name: INTELLIJ3
test_class.declarator: INTELLIJ4 = "cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --name \"^test name$\""
test_class.modifier: private static final
test_class.original_string: private static final String INTELLIJ4 = "cucumber.api.cli.Main --plugin org.jetbrains.plugins.cucumber.java.run.CucumberJvmSMFormatter --monochrome --name \"^test name$\"";
test_class.type: String
test_class.var_name: INTELLIJ4
test_class.declarator: ECLIPSE1 = "com.intuit.karate.StepDefs - cucumber.api.cli.Main /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/resources/com/intuit/karate/junit4/demos/users.feature --glue classpath: --plugin pretty --monochrome"
test_class.modifier: private static final
test_class.original_string: private static final String ECLIPSE1 = "com.intuit.karate.StepDefs - cucumber.api.cli.Main /Users/pthomas3/dev/zcode/karate/karate-junit4/src/test/resources/com/intuit/karate/junit4/demos/users.feature --glue classpath: --plugin pretty --monochrome";
test_class.type: String
test_class.var_name: ECLIPSE1
test_class.file: karate-core/src/test/java/com/intuit/karate/RunnerOptionsTest.java
test_class.identifier: RunnerOptionsTest
test_case.body: @Test
      public void testArgs() {
          RunnerOptions options = RunnerOptions.parseStringArgs(new String[]{});
          assertNull(options.features);
          assertNull(options.tags);
          assertNull(options.name);
          options = RunnerOptions.parseStringArgs(new String[]{"--name", "foo"});
          assertNull(options.features);
          assertNull(options.tags);
          assertEquals("foo", options.name);
          options = RunnerOptions.parseStringArgs(new String[]{"--tags", "~@ignore"});
          assertNull(options.features);
          assertEquals("~@ignore", options.tags.get(0));
          assertNull(options.name);
          options = RunnerOptions.parseStringArgs(new String[]{"--tags", "~@ignore", "foo.feature"});
          assertEquals("foo.feature", options.features.get(0));
          assertEquals("~@ignore", options.tags.get(0));
          assertNull(options.name);
      }
test_case.class_method_signature: RunnerOptionsTest.testArgs()
test_case.full_signature: @Test public void testArgs()
test_case.identifier: testArgs
test_case.invocations: parseStringArgs assertNull assertNull assertNull parseStringArgs assertNull assertNull assertEquals parseStringArgs assertNull assertEquals get assertNull parseStringArgs assertEquals get assertEquals get assertNull
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testArgs()
focal_class.declarator: logger = LoggerFactory.getLogger(RunnerOptions.class)
focal_class.modifier: private static final
focal_class.original_string: private static final org.slf4j.Logger logger = LoggerFactory.getLogger(RunnerOptions.class);
focal_class.type: org.slf4j.Logger
focal_class.var_name: logger
focal_class.declarator: COMMAND_NAME = Pattern.compile("--name \"?([^$\"]+[^ \"]+)\"?")
focal_class.modifier: private static final
focal_class.original_string: private static final Pattern COMMAND_NAME = Pattern.compile("--name \"?([^$\"]+[^ \"]+)\"?");
focal_class.type: Pattern
focal_class.var_name: COMMAND_NAME
focal_class.declarator: help
focal_class.modifier: @Option(names = {"-h", "--help"}, usageHelp = true, description = "display this help message")
focal_class.original_string: @Option(names = {"-h", "--help"}, usageHelp = true, description = "display this help message")
      boolean help;
focal_class.type: boolean
focal_class.var_name: help
focal_class.declarator: tags
focal_class.modifier: @Option(names = {"-t", "--tags"}, description = "tags")
focal_class.original_string: @Option(names = {"-t", "--tags"}, description = "tags")
      List<String> tags;
focal_class.type: List<String>
focal_class.var_name: tags
focal_class.declarator: threads = 1
focal_class.modifier: @Option(names = {"-T", "--threads"}, description = "threads")
focal_class.original_string: @Option(names = {"-T", "--threads"}, description = "threads")
      int threads = 1;
focal_class.type: int
focal_class.var_name: threads
focal_class.declarator: name
focal_class.modifier: @Option(names = {"-n", "--name"}, description = "name of scenario to run")
focal_class.original_string: @Option(names = {"-n", "--name"}, description = "name of scenario to run")
      String name;
focal_class.type: String
focal_class.var_name: name
focal_class.declarator: env
focal_class.modifier: @Option(names = {"-e", "--env"}, description = "value of 'karate.env'")
focal_class.original_string: @Option(names = {"-e", "--env"}, description = "value of 'karate.env'")
      String env;
focal_class.type: String
focal_class.var_name: env
focal_class.declarator: debugPort
focal_class.modifier: @Option(names = {"-d", "--debug"}, arity = "0..1", defaultValue = "-1", fallbackValue = "0",
              description = "debug mode (optional port else dynamically chosen)")
focal_class.original_string: @Option(names = {"-d", "--debug"}, arity = "0..1", defaultValue = "-1", fallbackValue = "0",
              description = "debug mode (optional port else dynamically chosen)")
      int debugPort;
focal_class.type: int
focal_class.var_name: debugPort
focal_class.declarator: features
focal_class.modifier: @Parameters(description = "one or more tests (features) or search-paths to run")
focal_class.original_string: @Parameters(description = "one or more tests (features) or search-paths to run")
      List<String> features;
focal_class.type: List<String>
focal_class.var_name: features
focal_class.declarator: monochrome
focal_class.modifier: @Option(names = {"-m", "--monochrome"}, description = "monochrome (not supported)")
focal_class.original_string: @Option(names = {"-m", "--monochrome"}, description = "monochrome (not supported)")
      boolean monochrome;
focal_class.type: boolean
focal_class.var_name: monochrome
focal_class.declarator: glue
focal_class.modifier: @Option(names = {"-g", "--glue"}, description = "glue (not supported)")
focal_class.original_string: @Option(names = {"-g", "--glue"}, description = "glue (not supported)")
      String glue;
focal_class.type: String
focal_class.var_name: glue
focal_class.declarator: plugins
focal_class.modifier: @Option(names = {"-", "--plugin"}, description = "plugin (not supported)")
focal_class.original_string: @Option(names = {"-", "--plugin"}, description = "plugin (not supported)")
      List<String> plugins;
focal_class.type: List<String>
focal_class.var_name: plugins
focal_class.file: karate-core/src/main/java/com/intuit/karate/RunnerOptions.java
focal_class.identifier: RunnerOptions
focal_class.class_method_signature: RunnerOptions.getTags()
focal_class.full_signature: public List<String> getTags()
focal_class.identifier: getTags
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> getTags()
focal_class.class_method_signature: RunnerOptions.getName()
focal_class.full_signature: public String getName()
focal_class.identifier: getName
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String getName()
focal_class.class_method_signature: RunnerOptions.addFeature(String feature)
focal_class.full_signature: public void addFeature(String feature)
focal_class.identifier: addFeature
focal_class.modifiers: public
focal_class.parameters: (String feature)
focal_class.return: void
focal_class.signature: void addFeature(String feature)
focal_class.class_method_signature: RunnerOptions.getFeatures()
focal_class.full_signature: public List<String> getFeatures()
focal_class.identifier: getFeatures
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<String>
focal_class.signature: List<String> getFeatures()
focal_class.class_method_signature: RunnerOptions.getThreads()
focal_class.full_signature: public int getThreads()
focal_class.identifier: getThreads
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getThreads()
focal_class.class_method_signature: RunnerOptions.getDebugPort()
focal_class.full_signature: public int getDebugPort()
focal_class.identifier: getDebugPort
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: int
focal_class.signature: int getDebugPort()
focal_class.class_method_signature: RunnerOptions.parseStringArgs(String[] args)
focal_class.full_signature: public static RunnerOptions parseStringArgs(String[] args)
focal_class.identifier: parseStringArgs
focal_class.modifiers: public static
focal_class.parameters: (String[] args)
focal_class.return: RunnerOptions
focal_class.signature: RunnerOptions parseStringArgs(String[] args)
focal_class.class_method_signature: RunnerOptions.parseCommandLine(String line)
focal_class.full_signature: public static RunnerOptions parseCommandLine(String line)
focal_class.identifier: parseCommandLine
focal_class.modifiers: public static
focal_class.parameters: (String line)
focal_class.return: RunnerOptions
focal_class.signature: RunnerOptions parseCommandLine(String line)
focal_class.class_method_signature: RunnerOptions.fromAnnotationAndSystemProperties(List<String> features, List<String> tags, Class<?> clazz)
focal_class.full_signature: public static RunnerOptions fromAnnotationAndSystemProperties(List<String> features, List<String> tags, Class<?> clazz)
focal_class.identifier: fromAnnotationAndSystemProperties
focal_class.modifiers: public static
focal_class.parameters: (List<String> features, List<String> tags, Class<?> clazz)
focal_class.return: RunnerOptions
focal_class.signature: RunnerOptions fromAnnotationAndSystemProperties(List<String> features, List<String> tags, Class<?> clazz)
focal_method.body: public static RunnerOptions parseStringArgs(String[] args) {
          RunnerOptions options = CommandLine.populateCommand(new RunnerOptions(), args);
          List<String> featuresTemp = new ArrayList();
          if (options.features != null) {
              for (String s : options.features) {
                  if (s.startsWith("com.") || s.startsWith("cucumber.") || s.startsWith("org.")) {
                      continue;
                  }
                  featuresTemp.add(s);
              }
              options.features = featuresTemp.isEmpty() ? null : featuresTemp;
          }
          return options;
      }
focal_method.class_method_signature: RunnerOptions.parseStringArgs(String[] args)
focal_method.full_signature: public static RunnerOptions parseStringArgs(String[] args)
focal_method.identifier: parseStringArgs
focal_method.invocations: populateCommand startsWith startsWith startsWith add isEmpty
focal_method.modifiers: public static
focal_method.parameters: (String[] args)
focal_method.return: RunnerOptions
focal_method.signature: RunnerOptions parseStringArgs(String[] args)