2017-10-25 8 views
0

私はキュウリをBDDとして作成し、testngと統合しました。フィーチャー・ファイルに2つのシナリオを追加しました。私はtestng.xmlにランナークラスを設定しています。ランナークラスでは、@BeforeClassでブラウザーを起動しています。テストは最初のシナリオを正常に実行しますが、2番目のシナリオは実行しません。これを先に進める方法を指導してください。testngでキュウリの機能で2番目のシナリオを実行できません

機能ファイル内の私のシナリオは次のとおりです。私はブラウザを呼び出していますどこ

Feature: Base PartyUserStories 

    Scenario: Verify login 
    Given the username and password 
    When login is clicked 
    Then you enter the login page 

    Scenario: Verify login and blah blah 
    Given the username and password 
    When login is clicked 
    Then you enter the login page 

マイランナークラスは次のとおりです。

@CucumberOptions(features = { "src/test/resources" }, glue = { "com.cucumber.testng.party.tests" }) 
public class TestRunner extends AbstractTestNGCucumberTests { 
    public static WebDriver driver; 

    @BeforeTest 
    public void run() { 
     System.out.println("Runs always "); 
    } 

    @BeforeMethod(alwaysRun = true) 
    public void geturl() { 
     driver = new FirefoxDriver(); 
     driver.get("https:test.aspx");  
    }   

    @AfterMethod(alwaysRun = true) 
    public void quiturl() {   
     driver.quit(); 
    } 

    @AfterTest   
    public void stoprun() {   
     System.out.println("Runs after every test"); 
    }  
} 

これは私のtestng.xmlです:

<?xml version="1.0"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Party" parallel="none"> 
    <test name="Base Party Validation"> 
     <classes> 
      <class name="com.cucumber.testng.runner.TestRunner"/> 
     </classes> 
    </test> 
</suite> 

最初のシナリオは正常に実行されますが、2番目のシナリオではブラウザは起動しません。これで私を助けてください。

+0

App.javaファイルを含むすべてのJavaファイルのコード全体を入れることができます –

答えて

0

単一のフィーチャーファイルと複数のシナリオがあるため、各シナリオの前に実行する@Before @Afterフックを使用してください。 これを実現するには、

+0

このソリューションは、機能ファイルを実行するとうまく動作しますが、testng.xmlをtestngスイートでは、ブラウザが起動しないため、私はnullpointerを取得します。 – user3548850

+0

あなたはtestng xmlに何を入れましたか?ランナーをそこにテストまたはクラスとして追加する必要があります。注釈付きのメソッドは、あなたのグルー(glue)フォルダで利用可能になるはずです。 –

関連する問題