Running a Cucumber test class jar from command line by passing command line arguments

Viewed 179

I have created a maven project:

My Project Structure:

root
  src
    main
      java
         com.test
            stepdefinition 
                TestType.java  //In com.test.stepdefinition package
         TestRunner.java // My main class in com.test package
      resources
          features/ --> My .feature files here

where my runner class is in src/main/java com.test package. I want to package my project as jar and run it from cmd by passing an argument (basically path of a csv file). My public static void main(String[] args) is in com.test.TestRunner class

TestRunner.java

package com.test

public class TestRunner {
private static String[] defaultOptions = {
        "--glue", "stepdefinitions",
        "--plugin", "pretty",
        "--plugin", "json:cucumber.json"
};

public static void main(String[] args) {
    Stream<String> cucumberOptions = Stream.concat(Stream.of(defaultOptions), Stream.of(args));
    cucumber.api.cli.Main.main(cucumberOptions.toArray(String[]::new));
}

}

How can I pass my csv file path as argument from cmd when it is packaged as jar. Below gives Unknown option: -

java -jar myjar.jar C:/Desktop/test.csv

This gives could not find or load main class advice

 java -Dpath-to-csv=C:/Desktop/test.csv -jar myjar
0 Answers
Related