l

2017年1月26日 星期四

在IntelliJ IDEA使用Cucumber(上)

Jan. 26 13:00~15:55

屏幕截图 2017-01-26 15.45.53

 

緣起

2013年8月寫了5篇介紹BDD觀念以及如何在Eclipse使用Cucumber(一種常用的BDD實作工具)的文章(請參考文末的延伸閱讀),時至2017年最近再試了一下Eclipse外掛程式對於Cucumber的支援,依舊是有點「弱弱的」。昨天試了一下IntelliJ IDEA發現它的整合稍微好一些,今、明兩天將之前在Eclipse裡面寫的範例搬到IntelliJ IDEA上,看看如何寫一個最簡單的Cucumber範例。

***

安裝IntelliJ IDEA

IntelliJ IDEA是一個商業軟體,可以開發Java還有其他許多JVM上的程式語言。雖然它的完整版本是需要付費購買,不過IntelliJ IDEA也提供免費的Community版本,用來開發一般Java應用程式綽綽有餘。

▼免費版與付費版的差別,節錄自IntelliJ IDEA官網

屏幕截图 2017-01-26 14.20.30

下載安裝程式之後一直按下一步完成安裝程序。

***

新增專案

▼安裝完畢之後選取Create New Project

屏幕截图 2017-01-26 07.40.34

 

▼在左邊選單選擇Java,按Next

屏幕截图 2017-01-26 14.29.55

 

▼選取Create project from template,按Next

屏幕截图 2017-01-26 14.31.04

▼專案名稱輸入CucumberTest,按Next

屏幕截图 2017-01-26 14.32.30

 

▼完成之後產生一個簡單的文字模式的Java程式。

屏幕截图 2017-01-26 14.33.51

***

加入Maven支援

▼這個專案要使用Maven來管理相依性元件,也就是讓Maven幫我們把等一下會使用到的Cucumber元件全部下載下來。剛剛產生的陽春專案還不支援Maven,在專案按滑鼠右鍵,從跳出選單中選擇Add Framework Support…

 屏幕截图 2017-01-26 14.45.47

 

▼選擇Maven,按OK。

屏幕截图 2017-01-26 14.47.03

 

▼專案目錄多了一個pom.xml檔案,待會要把使用到的外部元件加入到這個檔案中。

屏幕截图 2017-01-26 14.48.09

***

設定相依元件

▼使用Maven一個常見的問題就是:「我怎麼知道要怎麼設定相依元件?」以本文為例,會使用到Cucumber和JUnit,直接到Google搜尋:「maven repository cucumber」,點選第一筆資料。

屏幕截图 2017-01-26 14.52.32

 

▼出現一個非常壯觀的列表,點選最新的1.2.5版

屏幕截图 2017-01-26 14.54.05

 

▼把Maven相依性設定方式複製到pom.xml檔案就完成了Cucumber的設定。

屏幕截图 2017-01-26 14.55.22

 

▼接著在Mavan網站中搜尋cucumber,看看還有沒有什麼遺漏的相依性沒有加入。

屏幕截图 2017-01-26 14.57.10

 

▼找到7筆資料,第一個Cucumber JVM: JUnit會用到,點進去看看。

屏幕截图 2017-01-26 14.57.41

 

▼一樣點選最新的1.2.5版

屏幕截图 2017-01-26 15.00.01

 

▼這個Maven相依性設定也要複製到pom.xml檔案。

屏幕截图 2017-01-26 15.00.45

 

▼最後尋找JUnit相依性設定,找到最新的版本是JUnit 4.12

屏幕截图 2017-01-26 15.03.37

 

▼回到IntelliJ IDEA,打開pom.xml檔案,輸入<dependencies></dependencies> tag,把剛剛那三個元件的相依性設定複製到這個tag裡面就完成了相依元件設定。

屏幕截图 2017-01-26 15.10.16

***

安裝IntelliJ IDEA的Cucumber外掛程式

▼設定好Maven的相依元件之後準備開始使用Cucumber撰寫第一個feature檔案。先在test目錄建立一個features子目錄

屏幕截图 2017-01-26 21.16.14

屏幕截图 2017-01-26 21.17.21

 

▼然後在features目錄中新增一個hello_world.feature檔案。

屏幕截图 2017-01-26 21.18.24

屏幕截图 2017-01-26 15.51.30

 

▼點開hello_world.feature出現下列訊息,因為IntelliJ IDEA不知道怎麼處理.feature檔案,需要幫IntelliJ IDEA安裝可以處理這種副檔名的外掛程式。

屏幕截图 2017-01-26 15.18.16

 

▼點選IntelliJ IDEA—>Perferences…

屏幕截图 2017-01-26 15.20.17

 

▼選擇Plugins

屏幕截图 2017-01-26 07.57.40

 

▼搜尋cucumber,沒找到任何已安裝的cucumber plugins。沒關係,點選Search in repositories

屏幕截图 2017-01-26 07.58.02

 

▼選擇Cucumber for Java,按下Install

屏幕截图 2017-01-26 07.58.14

 

▼按下Yes

屏幕截图 2017-01-26 07.58.23

 

▼安裝好之後要重開IntelliJ IDEA。

屏幕截图 2017-01-26 07.58.43

 

▼裝好後現在Plugins出現兩個和cucumber有關的外掛,終於可以開工了。

屏幕截图 2017-01-26 07.58.51

 

▼hello_world.feature右方會出現綠色的小圖示,代表IntelliJ IDEA現在認得.feature檔案。

屏幕截图 2017-01-26 15.54.17

***

「工欲善其事,必先利其器」。雖然前面安裝與設定步驟看起來有點多,但實際上操作不會花太多時間,有興趣的鄉民可以自行操作一次。下一集繼續說明如何撰寫feature、step definition,以及如何跑Cucumber測試案例。

***

友藏內心獨白:設定通常會搞掉很多時間。

 

延伸閱讀

  1. BDD(1):詳盡的文件就是可用的軟體
  2. BDD(2):大家來吃小黃瓜之Cucumber運作原理
  3. BDD(3):在Eclipse執行Cucumber-JVM
  4. BDD(4):第一個Cucumber-JVM範例,上集
  5. BDD(5):第一個Cucumber-JVM範例,下集

沒有留言:

張貼留言