2017-10-18 11 views
2

Javaコードからキュウリの機能ファイルを実行します。JUnitランナーからではなく、Javaコードからキュウリの機能ファイルを実行するには

現在、我々は、フォームの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.cliの静的メインメソッドMainを、コマンドラインからキュウリを実行することに対応して呼び出します。

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

junitや他のランナーを使用する必要がない場合は、qaf-gherkinをお勧めします。実行するには、ステッププロバイダのパッケージと機能ファイルまたはディレクトリを指定するだけで済みます。たとえば:

<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

関連する問題