无法从maven运行Cucumber测试

我的Maven项目结构是

在此处输入图像描述

该项目运行良好如果我尝试通过eclipse运行它作为JUnitTest(CucumberRunnerTest.java)。

但是,如果我尝试通过maven执行它,那么我得到以下错误:

pom如下:

 4.0.0 com.ericsson MavenCuke 1.0-SNAPSHOT jar MavenCuke http://maven.apache.org  UTF-8 1.1.8 2.42.2 4.11 --format pretty --tags @Search     org.codehaus.mojo exec-maven-plugin 1.3.2   integration-test  java     test cucumber.api.cli.Main  --format junit:output/cucumber-junit-report/allcukes.xml --format pretty --format html:output/cucumber-html-report --format json:output/cucumber_report.json --glue src\ src\main\resource\com\ericsson\        info.cukes cucumber-picocontainer ${cucumber-jvm.version}   info.cukes cucumber-junit ${cucumber-jvm.version} test   org.seleniumhq.selenium selenium-java ${selenium.version}   com.google.guava guava 18.0-rc1   junit junit ${junit.version} test   info.cukes cucumber-jvm-deps 1.0.3   info.cukes cucumber-html 0.2.2 test   info.cukes gherkin 2.12.2   info.cukes gherkin-jvm-deps 1.0.2   info.cukes cucumber-java ${cucumber-jvm.version} test   net.masterthought cucumber-reporting 0.0.23 test   info.cukes cucumber-core ${cucumber-jvm.version} test   org.seleniumhq.selenium selenium-server ${selenium.version}   org.testng testng 6.1.1    

从命令提示符运行时***** ***** mvn integration-test

 [INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ MavenCuke --- [INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ MavenCuke --- [INFO] Building jar: C:\Users\esusadh\MavenCucumber\MavenCuke\target\MavenCuke-1.0-SNAPSHOT.jar [INFO] [INFO] --- exec-maven-plugin:1.3.2:java (default) @ MavenCuke --- [WARNING] Warning: killAfter is now deprecated. Do you need it ? Please commenon MEXEC-6. Feature: Navigating into ericsson.com and verify text In order to verify tags I open browser and I navigate to ericsson.com I verify the search text. @Search Scenario Outline: Searching for text ←[90m# Cucumber. feature:9←[0m ←[36mGiven ←[0m←[36mI go to "URL" on ""←[0m ←[36mWhen ←[0m←[36mI click on "Links"←[0m ←[36mThen ←[0m←[36mI verify for "Search_Text" against ""←[0m Examples: @Search Scenario Outline: Searching for text ←[90m# Cucumber.feature:16←[0m ←[33mGiven ←[0m←[33mI go to "URL" on "Mozilla"←[0m ←[33mWhen ←[0m←[33mI click on "Links"←[0m ←[33mThen ←[0m←[33mI verify for "Search_Text" against "The Company"←[0m 1 Scenarios (←[33m1 undefined←[0m) 3 Steps (←[33m3 undefined←[0m)0m0.000s You can implement missing steps with the snippets below: @Given("^I go to \"(.*?)\" on \"(.*?)\"$") public void i_go_to_on(String arg1, String arg2) throws Throwable { // Write code here that turns the phrase above into concrete actions throw new PendingException(); } @When("^I click on \"(.*?)\"$") public void i_click_on(String arg1) throws Throwable { // Write code here that turns the phrase above into concrete actions throw new PendingException(); } @Then("^I verify for \"(.*?)\" against \"(.*?)\"$") public void i_verify_for_against(String arg1, String arg2) throws Throwable { // Write code here that turns the phrase above into concrete actions throw new PendingException(); } 

我在Search_Text.java中实现了这个步骤。

如果我使用maven-compiler插件并通过maven运行它我得到包gree.api.junit.Cucumber不存在!! (下面是POM中添加的插件)

   maven-compiler-plugin 3.1  1.7 1.7  **/*Test.java     

作为--glue您应该指定java测试类的包名称

你有testng和junit以及依赖。 尝试仅使用junit,因此maven结果不会被覆盖。

当我在黄瓜项目中遇到相同的错误时,我需要的最小依赖列表是:

   4.11 2.50.1 1.2.0    junit junit ${junit.version} test   info.cukes cucumber-java ${cucumber.version} test   info.cukes cucumber-junit ${cucumber.version} test