问题
I am getting this error while running my feature file
Usage: java cucumber [options] [ [FILE|DIR][:LINE[:LINE]*] ]+
Options:
-g, --glue PATH Where glue code (step definitions and hooks) is loaded from.
-f, --format FORMAT[:PATH_OR_URL] How to format results. Goes to STDOUT unless PATH_OR_URL is specified.
Built-in FORMAT types: junit, html, pretty, progress, json.
FORMAT can also be a fully qualified class name.
-t, --tags TAG_EXPRESSION Only run scenarios tagged with tags matching TAG_EXPRESSION.
-n, --name REGEXP Only run scenarios whose names match REGEXP.
-d, --[no-]-dry-run Skip execution of glue code.
-m, --[no-]-monochrome Don't colour terminal output.
-s, --[no-]-strict Treat undefined and pending steps as errors.
--snippets Snippet name: underscore, camelcase
--dotcucumber PATH_OR_URL Where to write out runtime information. PATH_OR_URL can be a file system
path or a URL.
-v, --version Print version.
-h, --help You're looking at it.
Exception in thread "main" cucumber.runtime.CucumberException: Unknown option: --plugin
at cucumber.runtime.RuntimeOptions.parse(RuntimeOptions.java:119)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:50)
at cucumber.runtime.RuntimeOptions.<init>(RuntimeOptions.java:44)
at cucumber.api.cli.Main.run(Main.java:20)
at cucumber.api.cli.Main.main(Main.java:16)
my runner class
package cucumber;
import org.junit.runner.RunWith;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
@RunWith( value = Cucumber.class)
@CucumberOptions(dryRun = false, strict = true,
features="/STAF/src/main/java/CucumberFeature/GmailLoginLogout.feature/",
tags ={"~@/ReCall/src/SeleniumWithCucumber/FbTest.java"})
public class CucumberRunner {
}
my feature file
Feature: Gmail login Logout
Scenario: Login and Log out to Gmail Given Open gmail When Login with valide credential Then Home page should come
my step defination
package StepDfination;
import org.openqa.selenium.WebDriver;
import cucumber.api.java.en.Given;
import cucumber.api.java.en.Then;
import cucumber.api.java.en.When;
public class GmailLoginLogout {
WebDriver driver;
@Given("^Open gmail$")
public void Open_gmail(){
System.out.println("gmailopened ");
}
@When("^Login with valide credential$")
public void Login_with_valide_credential(){
System.out.println("cridential entered");
}
@Then("^Home page should come$")
public void Home_page_should_come(){
System.out.println("in home page");
}
}
回答1:
Use of CLI command to invoke it as a Java program would be
public static void main(String args[]) {
Main.main(new String[]{"-g", "StepDfination", "-t", "<your tag what you need to test", "/STAF/src/main/java/CucumberFeature/GmailLoginLogout.feature"}); }
As grasshopper suggested, if you need invoke it as TestNG, you need a runner class.
Note that your feature file location should be the last. Let me know if it helps!
回答2:
It looks like you are trying to get started. Your steps will only report that they are executed. However, your approach seems very complicated and you are getting an error you don't understand. You have a problem with Gall's law.
I would suggest that you start from another angle. Start from something that works and then transform it into something that you want.
Clone the getting started project supplied by the Cucumber Team and then transform it in small steps to the example you really would like to have.
回答3:
Try using "-p" instead of "--plugin".
I found out it by a similar error of mine. Hope this log would help.
Usage: java cucumber.api.cli.Main [options] [[[FILE|DIR][:LINE[:LINE]*] ]+ | @FILE ]
Options:
-g, --glue PATH Where glue code (step definitions, hooks
and plugins) are loaded from.
-p, --[add-]plugin PLUGIN[:PATH_OR_URL]
Register a plugin.
Built-in formatter PLUGIN types: junit,
html, pretty, progress, json, usage, rerun,
testng. Built-in summary PLUGIN types:
default_summary, null_summary. PLUGIN can
also be a fully qualified class name, allowing
registration of 3rd party plugins.
--add-plugin does not clobber plugins of that
type defined from a different source.
-f, --format FORMAT[:PATH_OR_URL] Deprecated. Use --plugin instead.
-t, --tags TAG_EXPRESSION Only run scenarios tagged with tags matching
TAG_EXPRESSION.
-n, --name REGEXP Only run scenarios whose names match REGEXP.
-d, --[no-]-dry-run Skip execution of glue code.
-m, --[no-]-monochrome Don't colour terminal output.
-s, --[no-]-strict Treat undefined and pending steps as errors.
--snippets [underscore|camelcase] Naming convention for generated snippets.
Defaults to underscore.
-v, --version Print version.
-h, --help You're looking at it.
--i18n LANG List keywords for in a particular language
Run with "--i18n help" to see all languages
--junit,OPTION[,OPTION]* Pass the OPTION(s) to the JUnit module.
Use --junit,-h or --junit,--help to print the
options of the JUnit module.
Feature path examples:
<path> Load the files with the extension ".feature"
for the directory <path>
and its sub directories.
<path>/<name>.feature Load the feature file <path>/<name>.feature
from the file system.
classpath:<path>/<name>.feature Load the feature file <path>/<name>.feature
from the classpath.
<path>/<name>.feature:3:9 Load the scenarios on line 3 and line 9 in
the file <path>/<name>.feature.
@<path>/<file> Parse <path>/<file> for feature paths generated
by the rerun formatter.
来源:https://stackoverflow.com/questions/43696842/usage-java-cucumber-api-cli-main-options-filedirlineline