2014-10-03 99 views
0

我尝试通过命令行执行我的maven cucumber-JVM项目时遇到困难,该项目在eclipse环境中工作正常,但是我犯了一个非常愚蠢的错误。有人能指出什么莫非,我会附上相关错误的图像,通过命令行的黄瓜maven

<mainClass>cucumber.api.cli.Main</mainClass> 
      <includePluginDependencies>true</includePluginDependencies> 
      <arguments> 
       <argument>--format</argument> 
       <argument>junit:target/cucumber-junit-report/allcukes.xml</argument> 
       <argument>--format</argument> 
       <argument>pretty</argument> 
       <argument>--format</argument> 
       <argument>html:target/cucumber-html-report</argument> 
       <argument>--tags</argument> 
       <argument>@kings</argument> 
       <argument>--glue</argument> 
       <argument>com/Science_Ware/Bilal/KingsPostLogin/</argument> 
       <argument>src/test/resources</argument> 

      </arguments> 

以上就是我的pom.xml文件和我的类目录,在这里我感觉错误可能是。我的功能文件在src/test/resources中,我的步骤类路径是com.Science_Ware.Bilal.KingsPostLogin,我的Classname也是KingsPostLogin。

C:\Users\********\My Documents\EclipseWork\Science-Ware>mvn exec:java 
[INFO] Scanning for projects... 
[INFO] 
[INFO] ------------------------------------------------------------------------ 
[INFO] Building Science-Ware 0.0.1-SNAPSHOT 
[INFO] ------------------------------------------------------------------------ 
[INFO] 
[INFO] --- exec-maven-plugin:1.3.2:java (default-cli) @ Science-Ware --- 
[WARNING] Warning: killAfter is now deprecated. Do you need it ? Please comment 
on MEXEC-6. 
Feature: Login and clicking on Content Containers 

    In Order to Work in Microsoft 
    I want to log in 
    and verify content containers 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/Ki 
ngsPostLogin/kingspostlogin.feature:7←[0m 
    ←[36mGiven ←[0m←[36mI am logged into system on "Mozilla"←[0m 
    ←[36mAnd ←[0m←[36mI click on "<Content_Container>"←[0m 
    ←[36mThen ←[0m←[36mProcess should be "<Expected_Result>"←[0m 

    Examples: 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/Ki 
ngsPostLogin/kingspostlogin.feature:15←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "OrderCentre"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "OrderCentreTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/ 
KingsPostLogin/kingspostlogin.feature:16←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "AggregateOrders"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "AggregateOrdersTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/ 
KingsPostLogin/kingspostlogin.feature:17←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "FreeFormatOrder"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "FreeFormatOrderTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/Ki 
ngsPostLogin/kingspostlogin.feature:18←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "GetAQuote"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "GetAQuoteTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse  ←[90m# com/Science_Ware/Bila 
l/KingsPostLogin/kingspostlogin.feature:19←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "ComputerEquipment"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "ComputerEquipmentTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/Ki 
ngsPostLogin/kingspostlogin.feature:20←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "Oligos"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "OligosTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/Ki 
ngsPostLogin/kingspostlogin.feature:21←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "eTracker"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "eTrackerTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal 
/KingsPostLogin/kingspostlogin.feature:22←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "BrowseCategories"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "BrowseCategoriesTitle"←[0m 

    @kings 
    Scenario Outline: Loggin in Science Warehouse ←[90m# com/Science_Ware/Bilal/ 
KingsPostLogin/kingspostlogin.feature:23←[0m 
    ←[33mGiven ←[0m←[33mI am logged into system on "Mozilla"←[0m 
    ←[33mAnd ←[0m←[33mI click on "BrowseSuppliers"←[0m 
    ←[33mThen ←[0m←[33mProcess should be "BrowseSuppliersTitle"←[0m 

9 Scenarios (←[33m9 undefined←[0m) 
27 Steps (←[33m27 undefined←[0m) 
0m0.000s 


You can implement missing steps with the snippets below: 

@Given("^I am logged into system on \"(.*?)\"$") 
public void i_am_logged_into_system_on(String arg1) throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 

@Given("^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("^Process should be \"(.*?)\"$") 
public void process_should_be(String arg1) throws Throwable { 
    // Write code here that turns the phrase above into concrete actions 
    throw new PendingException(); 
} 

上面是我的命令行执行没有调用我的任何步骤方法。他们只运行没有任何输出。我正在使用mvn exec:java命令来执行。

+0

因此,您在步骤文件中缺少一些方法。错误告诉你这个:) – Reimeus 2014-10-03 10:36:54

+0

我已经有了提供这些步骤的类文件,第二个给定应该是@And。此外,我刚刚跑过我的亚军班,它工作正常,只是通过命令提示问题 – user1584614 2014-10-03 10:41:47

+0

步骤文件实际上位于'com/Science_Ware/Bilal/KingsPostLogin /'?因为看起来Cucumber找不到它们。 – Marit 2018-01-04 19:21:11

回答

1

我觉得有两个问题。首先,你可能不应该从命令行运行黄瓜。要运行它们,只需添加一个单元测试看起来应该像这样:

import cucumber.api.junit.Cucumber; 
import org.junit.runner.RunWith; 

@RunWith(Cucumber.class) 
@Cucumber.Options(
    // Enable one of these to run just some tests. Put regexp to match features in here. 
// name = {"^Preview"}, 
// name = {"^Save"}, 
// tags = { "@questionLibrary", "@addingCategory" }, 
    format = {"html:target/cucumber-html-report", "pretty:target/cucumber-json-report.json"}, 
    strict = true 
) 
public class RunCukesTest { 
} 

当Maven运行测试,黄瓜测试运行将找到的所有功能,创建一个漂亮的JUnit测试套件并运行它。这样,问题就会显示为测试失败。

第二个问题是Cucumber在您的测试中发现错误并报告它们。您需要仔细阅读输出以了解错误,然后修复功能描述和/或支持代码。

+0

我已经有完美执行的runner类,我只有通过命令行运行时遇到问题。我只需要通过命令行来运行它,这样我就可以使用jenkins轻松运行了。 – user1584614 2014-10-03 13:46:32

+0

在这种情况下,您的设置出错了,因为Cucumber无法在错误输出结尾附近找到三个步骤定义。 – 2014-10-03 14:15:24