2017-09-28 12 views
0

内の他の機能から1つの特徴ファイルを呼び出す:私は、Home.featureファイルで私はフィーチャーファイルの下に持って考えてみましょうキュウリ

Login.feature

Feature: Login on website 

Scenario: Login verification on site 
    Given Navigate to site login page 
    When User enters username 'admin1' 
    And User enters password 'admin1' 
    And User clicks on login button 
    Then User should not be able to log in successfully 

Home.feature

Feature: Welcome Page Verification 

Scenario: Verify the page that comes after login 
    Given Login is successfully done 
    When The page after login successfully appears 
    Then The test is done 

まずLogin.featureを実行してからhome.featureを呼び出す必要があります。だから、私はランナーテストから家を実行すると、それはログインとホームを実行します。

RunnerTest.java

import org.junit.runner.RunWith; 

import cucumber.api.CucumberOptions; 
import cucumber.api.junit.Cucumber; 

@RunWith(Cucumber.class) 


@CucumberOptions(strict = false, features = { 
     "src/test/resources/Features/Home.feature", 
      }, glue = { "tests" }, plugin = "html:target/cucumber-reports", format = { "pretty", 
     "json:target/cucumber.json" }, tags = { "[email protected]" }) 

public class RunnerTest {} 

おかげ&よろしく、 メガ

答えて

1

あなたは第二の特徴から第一の特徴を呼び出す必要はありません。あなたがする必要があるのは、ログインできる2番目の機能にステップがあります。これは、最初の機能を実装するときに作成したコードを呼び出すことで実行できます。

最初の機能は、初めてログインを実装するときに書くことのできる機能です。これを行うにはこれらの手順はであなたをログに記録するために呼び出すことをあなたは意志の手順とコード。

コードの一種、作成しなければならないです(申し訳ありませんすべての例は、私は、Javaをしないルビーです)

  1. Aその名前を知っているテストユーザーエンティティ、メールアドレスとパスワード
  2. ユーザーテストユーザーを

にログインするために、あなたはヘルパーメソッドなどを書くことができますすることができます方法

def login_as(user) visit login_path fill_in :email, with: user.email fill_in :password, with: user.password submit_form end

、今、あなたの第二の特徴で、あなたは

Given I am an admin 
When I login 

のようなものを持つことができ、

Given 'I am an admin' do 
    # note create_user is a method you would have created when doing user 
    # registration/creation 
    @i = create_user(type: admin) 
end 

When "I login" do 
    login_as @i 
end 

とどこかにあなたには、いくつかのヘルパーメソッド

を持つことになり、これらのステップを実装
module StepHelperMethods 
    def create_user 
    ... 
    return user 
    end 

    def login_as(user) 
    ... 
    end 
end 
World StepHelperMethods 

コードの再利用は、常にずっと低いレベルで行われます。理想的には、以前に作成したヘルパーメソッドを再利用して、他のシナリオを動作させる必要があります。また、ステップを直接呼び出すこともできます(ネストされたステップ)が、これは非常に悪いことです。

0

はこれを試してみてください:

Login.featureを呼び出すためにRunnerLoginクラスを作成します。

@Given("^Login is successfully done$") 
public void login_is_successfully_done() { 
    Thread T1 = new Thread(new Thread(() -> { 
     JUnitCore jExecFeature = new JUnitCore(); 
     Result result = jExecFeature.run(RunnerLogin.class); 
    }));     

    T1.start();     
    T1.join(); 
} 
:ような何かを、 Given Login is successfully doneを実装する方法であなたのステップのクラスで

関連する問題