l

2013年7月22日 星期一

BDD(3):在Eclipse執行Cucumber-JVM

July 19 15:23~17:35

螢幕快照 2013-07-19 下午5.33.45

 

Teddy在這一集介紹如何在Eclipse裡面使用Cucumber-JVM,為了避免混淆,Teddy再強調一下:Cucumber是用Ruby開發的BDD工具,Cucumber-JVM是用Java開發的「Cucumber山寨版」。使用Cucumber-JVM不需要安裝Ruby,只需要下載幾個jar檔並設定到Java的classpath即可。

在Eclipse裡面使用Cucumber-JVM有好幾種方法,理想上如果有人幫Cucumber-JVM開發Eclipse plug-in的話,那安裝plug-in會是最簡單的方法。但是Teddy稍微找了一下,目前似乎沒有很好的Cucumber-JVM plug-in,所以暫時先排除這種方式。如果熟Maven或是Ivy的鄉民們,可以用Maven或是Ivy來管理Cucumber-JVM所需要的jar檔。下圖是Maven的pom.xml檔案範例,把這個檔案放在Eclipse裡面,

螢幕快照 2013-07-19 下午4.45.03

 

並把Maven Dependencies加到Eclipse的Java Build Path裡面就可以了。

螢幕快照 2013-07-19 下午4.47.30

***

在這裡Teddy要介紹最簡單的「老師傅手工打造」方法,自己下載所需要的jar。要執行最基本的Cucumber-JVM功能,需要五個jar檔,目前Teddy使用的檔案版本如下 :

  • cucumber-java-1.1.3.jar
  • cucumber-core-1.1.3.jar
  • cucumber-junit-1.1.3.jar
  • junit-4.1.1.jar
  • hamcrest-core-1.3.jar

用這些檔名當「祭品」拜一下Google大神,就會找到可以下載的連結。下載完畢之後在Eclipse新增一個Java Project,然後建一個libs目錄,把這五個jar檔複製到libs目錄中。

螢幕快照 2013-07-19 下午4.54.33

 

完成之後把這個五個jar檔加入Eclipse的Java Build Path。

螢幕快照 2013-07-19 下午4.01.30

 

基本上這樣就完成了,看一下Teddy在《BDD(2):大家來吃小黃瓜之Cucumber運作原理》所舉的範例專案目錄結構。

螢幕快照 2013-07-19 下午5.00.35

***

雖然環境設定好之後就可以開始體驗BDD,但是目前Teddy還沒找到支援Cucumber-JVM的好用plug-in。用最陽春的方式開發,有一些不太方便的地方。例如,如下圖所示,執行驗收測試案例之後(.feature檔案裡面的scenario),在JUnit視窗中,無法直接double-click某一個step就跳到相對應的step definition程式碼裡面。

螢幕快照 2013-07-19 下午5.12.45

 

Double-click JUnit視窗中的項目會出現以下錯誤訊息。

螢幕快照 2013-07-19 下午5.12.08

 

另外,編輯.feature檔案的時候,沒辦法直接跳到相對應的step definition程式碼。

螢幕快照 2013-07-19 下午5.14.54

 

同樣地,在step definition程式碼中也無法跳到.feature檔案中相對應的step。

螢幕快照 2013-07-19 下午5.16.34

***

今天的範例程式可以在「搞笑談軟工Facebook社團」中下載,檔名是Teddysoft-CucumberTest-V1.jar

***

友藏內心獨白:若有好用的Cucumber-JVM plug-in請介紹一下。

2 則留言:

  1. Teddy 兄您好:

    最近剛好也在吃小黃瓜 XD,試用了幾個 plugin
    覺得 Roberto Lo Giacco 寫的 Natural 是目前支援最好的
    https://github.com/rlogiacco/Natural/wiki
    除了 Cucumber 以外,它也有支援 JBehave

    安裝方式很簡單,新增官方 Update Site
    http://rlogiacco.github.com/Natural
    選擇 Cucumber 那個套件,確認安全警告,重啟即可

    編輯器支援:
    1. Gherkin 語法高亮(但不支援 i18n 版,我個人是 prefer 關鍵字仍用英文,故不影響)
    2. 自動完成(比較囧的是,叫出自動完成的快捷鍵是 Ctrl+Space 恰恰是中文輸入法,我自己是把輸入法的改掉)
    3. 從 feature Ctrl+單擊滑鼠左鍵可跳到 step def 的方法
    4. 即時驗證語法,檢查是否定義 step def 等
    5. 還有其它功能請見上述 Wiki
    非常推薦試用看看

    因為 Cucumber 的中文資料不多,Google 大多會搜到您的文章
    想說分享在這裡,也可讓更多網友知曉:)

    回覆刪除
    回覆
    1. Hi Cheng-Wei,

      謝謝您熱心推薦,有時間再來試看看。

      刪除