2017-10-18 62 views
2

我想從java代碼運行黃瓜功能文件。如何從java代碼中運行黃瓜功能文件不是來自JUnit Runner

我們目前正在運行的形式JUnit運行

package com.compareglobalgroup.testscript; 

import cucumber.api.CucumberOptions; 
import cucumber.api.testng.AbstractTestNGCucumberTests; 

    @CucumberOptions(features = { "src/test/resources/feature/BB" }, glue = { "com.compareglobalgroup.stepdefs.BB", 
     "com.compareglobalgroup.cucumber.hooks" }, plugin = { 
       "json:cucumberreport/json/cucumberreport.json" }, tags = { "" 
         + "@Test" }) 
    public class TestRunnerBB extends AbstractTestNGCucumberTests { 

} 

我不想因爲我想通過命令行或通過詹金斯在運行時的標籤,而不是我要運行這個使用java程序使用。

回答

3

調用包cucumber.api.cliMain類的靜態主方法,該方法對應於從命令行運行黃瓜。

public static void main(String[] args) throws Throwable { 

    Main.main(new String[]{"-g", "classpath to step definition file", "Full path to feature file"}); 

      // My stepdefinition is inside java package at cucumber.sample.test 
      // My feature file is inside src/test/resources/features/featurefile.feature 

     } 

對於像標籤或插件的其他參數使用"-t","@Tags"重要功能文件路徑必須是最後一個選項。

順便說一句 - 在你的例子中,你正在運行一個TestNG黃瓜亞軍。

1

我會推薦qaf-gherkin你不需要使用junit或其他亞軍。您只需指定步驟提供程序包和功能文件或目錄即可運行。例如:

<test name="Gherkin-QAF-Test"> 
    <parameter name="step.provider.pkg" value="com.qmetry.qaf.automation.impl.step.qaf" /> 
    <parameter name="scenario.file.loc" value="resources/features" /> 
    <classes> 
     <class name="com.qmetry.qaf.automation.step.client.gherkin.GherkinScenarioFactory" /> 
    </classes> 
</test> 

您可以通過qaf-step-by-step-tutorial

+0

由於走老兄非常有用的。我將來會使用它,因爲我已經創建了我的框架。 – bugCracker