2016-12-01 10 views
0

私は、Javaでselenium + cucumberを使用して自動テストシナリオを作成しました。テストを実行しようとすると何も起こりません。私は私が何をしたのかわからないが、私は何かが私の機能で起こったと思う、次のメッセージに警告が存在するので "I try to login on facebookの定義が見つかりませんでした"、 "I put my user "email"の定義が見つかりません"、 "I put my password "pass"" "validate login"の定義は見つかりませんでした。キュウリのJava:1.2.5 /キュウリのJUnit:1.2.5 /セレンのJava:3.0.1 /セレンFirefoxのドライバ:3.0.1/JUnitの:4.12機能上のキュウリとセレンのエラー

私はMavenを使用して、これらのjarファイルをインポート

RunTest.java

package com.tdd.facebook; 

import org.junit.runner.RunWith; 

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

@RunWith(Cucumber.class) 
@CucumberOptions(
     format = {"pretty", "html:target/cucumber"}, 
     features = {"src/test/resources"} 
     ) 

public class RunTest { 

    public RunTest() { 
     // TODO Auto-generated constructor stub 
    } 

} 

LoginSteps.java

package com.tdd.facebook; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 

import cucumber.api.PendingException; 
import cucumber.api.java.en.Given; 
import cucumber.api.java.en.Then; 
import cucumber.api.java.en.When; 

public class LoginSteps { 

    WebDriver driver = null; 

    @Given("^I try to login on facebook$") 
    public void i_try_to_login_on_facebook() throws Throwable { 

     System.setProperty("webdriver.gecko.driver", "C:\\Caio\\Selenium\\geckodriver.exe"); 
     WebDriver driver = new FirefoxDriver(); 
     driver.get("https://www.facebook.com/");   
     throw new PendingException(); 
    } 

    @When("^I put my user \"([^\"]*)\"$") 
    public void i_put_my_user(String email) { 
     driver.findElement(By.id(email)).click(); 
     driver.findElement(By.id(email)).sendKeys("UserTest"); 
    } 

    @When("^I put my password \"([^\"]*)\"$") 
    public void i_put_my_password(String pass){ 
     driver.findElement(By.id(pass)).click(); 
     driver.findElement(By.id(pass)).sendKeys("Test"); 
    } 

    @Then("^validate login$") 
    public void validate_login() throws Throwable { 
     System.out.println("Login OK"); 
    } 

    public LoginSteps() { 
     // TODO Auto-generated constructor stub 
    } 

} 

Login.feature

Feature: Login on facebook 

Scenario: Check if the login is successful 
Given I try to login on facebook 
When I put my user "email" 
When I put my password "pass" 
Then validate login 

pow.xmlは

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.tdd</groupId> 
    <artifactId>facebook</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>facebook</name> 
    <url>http://maven.apache.org</url> 

    <properties> 
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    </properties> 

    <dependencies> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-java</artifactId> 
      <version>1.2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>info.cukes</groupId> 
      <artifactId>cucumber-junit</artifactId> 
      <version>1.2.5</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-java</artifactId> 
      <version>3.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>org.seleniumhq.selenium</groupId> 
      <artifactId>selenium-firefox-driver</artifactId> 
      <version>3.0.1</version> 
     </dependency> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.12</version> 
     </dependency> 
    </dependencies> 
</project> 

答えて

0

あなたはステップ定義クラスへのパスをcucumberoptionsに糊オプションを追加する必要があります。 glue="com.tdd.facebook"を使用してください。私はこれについてはわかりませんが、ランナーRunTestのコンストラクターを削除したいかもしれません。

LoginStpsクラス - i_try_to_login_on_facebook()メソッドでは、別のドライバ変数を宣言して初期化しています。したがって、クラスのドライバフィールドはnullのままです。これを削除します。同じ方法でも、あなたはkを投げています。ステップを実装しているので、もう必要はありません。

また、すべてのjarがpomにインポートされているかどうかを確認してください。私はあなたがいくつかの瓶を欠いていると思います。キュウリのJavaページを確認してください。

+0

ありがとう、今はうまくいった!私はすべての指示に従って、それはうまく動作している!! –

関連する問題