无法从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