2015-12-22 85 views
2

已經嘗試過幾乎所有的解決方案,但仍然在這裏丟失東西。黃瓜運行時無法獲得結果。試圖實施BDD

我已經創建了簡單的JAVA程序,爲黃瓜添加了功能文件和類。當我跑我得到的輸出:

@Search方案概要:成功打開Goog​​le.com [90米# Open_Google.feature:40米 [36mGiven [0分[36mUser是空白頁[0米 [ 36mWhen [0分[36mUser輸入網址[0米 [36mThen [0分[36mGoogle網站應該打開[0米

0場景

0步驟

0m0.000s

特性文件:

Feature: Open Google WebSite 

@Search 
Scenario Outline: Successful Open Google.com 
Given User is with blank page 
When User enter URL 
Then Google WebSite should open 

測試運行器類:

import org.junit.runner.RunWith; 

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


@RunWith(Cucumber.class) 
@CucumberOptions(

     features = "Feature" 

     ) 

public class TestRunner { 

} 

測試用例類:

public class cucumber_test { 

    public static WebDriver driver; 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 



     System.setProperty("webdriver.chrome.driver", "D:\\chromedriver.exe"); 
     driver = new ChromeDriver(); 

     driver.get("http://www.google.com"); 
     driver.manage().window().maximize(); 

     System.out.println("Google open successfully"); 
    } 

} 

使用硒Webdriver,JAVA,Junit和黃瓜。

我也在做對吧?使用黃瓜是否正確?

回答

1

看起來跑步者無法找到你的功能文件。它是否位於資源?如果是,嘗試引用整個類路徑類似

import org.junit.runner.RunWith; 

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


@RunWith(Cucumber.class) 
@CucumberOptions(

    features = "classpath:com/yourgroup/yourartifact/cucumber/features" 

    ) 

public class TestRunner { 

} 

上面只是一個例子,當然你有不同的地方你的功能定位,以改變該類路徑。

+2

感謝您的幫助,現在它說_ **沒有在發現功能[classpath中:Cucumber_Sample /專題] ** –

1

您需要引用功能的位置和步驟定義。亞軍應該是這個樣子:

import org.junit.runner.RunWith; 

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


@RunWith(Cucumber.class) 
@CucumberOptions(
    features = {"path/to/features/"}, 
    glue = {"classpath:package.name.of.stepsDefinitions"}, 
) 

public class TestRunner { 

} 

注爲功能文件路徑表示,爲膠水代碼(步驟定義)的包符號

+0

我是否需要爲stepsDefinitions創建任何其他文件? –

+0

同樣的問題仍然存在。 –

+0

你能提供你的項目結構嗎?我認爲isba路徑問題。現在只需一步定義文件就足夠了。 – Dude

1

我相信你仍然面臨同樣的問題。你可以試試這個。

import org.junit.runner.RunWith; 

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


    @RunWith(Cucumber.class)@CucumberOptions(plugin = { 
    "pretty", "json:target/Open-Google-WebSite.json"}, 
    features = {"src/test/FeatureFilePackage"}, 
    glue = {"com.java.cucumber_test"}) 

    public class TestRunner { 

    } 
+0

謝謝,我得到的結果比以前好,但仍然有一些問題,請檢查我更新的問題。 –

+1

哦,您沒有創建步驟定義就是問題所在。當你運行runner文件時,它會創建步驟定義,你將所有的步驟定義複製到cucumber_test中並在每一步中寫入代碼。運行你的runner文件,你應該能夠看到步驟定義函數控制檯輸出並複製到cucumber_test中。它將有待處理的異常。刪除待處理的異常,並根據每個步驟放置代碼。 –

+0

當然,我會嘗試。謝謝。 –

0

看來你的測試是通過TestNG中未顯示任何特定的錯誤運行我建議你從你的POM文件中刪除TestNG的依賴運行測試(通過Junit的),你就可以看到具體的錯誤和解決它後,你將能夠運行你的類容易

預期的錯誤可能是「重複步認定中的」