自動化單元測試工具EvoSuite的簡單使用,單元測試evosuite
一、EvoSuite簡介
EvoSuite是由Sheffield等大學聯合開發的一種開源工具,用於自動產生測試案例集,產生的測試案例均符合Junit的標準,可直接在Junit中運行。
通過使用此自動化的測試工具能夠在保證程式碼涵蓋範圍的前提下極大地提高測試人員的開發效率。但是只能輔助測試,並不能完全取代人工,測試案例的正確與否還需人工判斷。
EvoSuite官網為http://www.evosuite.org
EvoSuite GitHub https://github.com/EvoSuite/evosuite
EvoSuite問題及解答http://stackoverflow.com/questions/tagged/evosuite
二、EvoSuite Eclipse外掛程式的安裝
EvoSuite 外掛程式需要Java 8 的運行環境,並且只支援Eclipse的Lunar和Mars版本,在安裝完畢Java 8之後(若系統中有多種Java開發環境,需將Eclipse的預設jre設定成Java 8 版本),需要將jdk1.8/lib/tools.jar 檔案複製到 jre8/lib/ 檔案夾當中,在此之後Java 8才能保證EvoSuite外掛程式的正常運行。
安裝過程如下(由於安裝過程可能會出現問題,所以詳細列出了安裝過程):
圖1
2.點擊Add…按鈕,彈出如下對話方塊
圖2
3.在Location欄中輸入EvoSuite Eclipse外掛程式的地址:http://www.evosuite.org/update 後,點擊OK按鈕,結果如下
圖3
4.選中 Junit Test Generation 後,點擊Next按鈕,結果如下
圖4
5.中已耗用時間可能過長,請耐心等待,運行完畢後,結果如下
圖5
6.點擊Next按鈕,選中 I accept the terms of license agreement後,點擊Finish按鈕後,顯示 Installing Software對話方塊,等待一段時間後,會彈出如下對話方塊
圖6
7.點擊OK按鈕,等待一段時間後,出現如下對話方塊
圖7
8.點擊Yes按鈕,Eclipse重啟後,隨意選中一個java類檔案,若出現如標,則外掛程式安裝成功。
圖8
三、EvoSuite的簡單使用
選中需要測試的類,右擊滑鼠,選擇Generate tests with EvoSuite ,則會產生測試案例,測試案例產生在項目中的evosuite-tests檔案夾內。產生的測試類別為標準的Junit 4 測試類別,可以完全按照Junit 4 的操作規範對其測試。
注意:在使用此工具測試Web項目中和Servlet相關的類時,工具載入不到二級目錄的jar包,因此應該把 Server Runtime Library和Web App Library中的jar包再重新匯入到工程當中。
四、EvoSuite參數設定
點擊Windows->Preferences ,尋找到EvoSuite即可對其進行設定,設定介面如下
圖9
參數說明:
1. Enable Markers and Quick-fixes:選中此選項會在產生的測試類別中產生提示的標記
2. Time for EvoSuite to improve code coverage(s): 允許EvoSuite產生測試類別時改進程式碼涵蓋範圍的最大時間
3. Inactive time before other classes will be tested(s):
4. Show lines EvoSuite couldn’t cover:
5. Show lines the compiler may have removed:
6. Automatic test on save:
7. Organize imports:
8. Print test comments:選中此項會在測試類別中每一個測試方法上加上詳細地注釋
五、Junit測試報告的產生
選中項目,右擊滑鼠,選擇Export->General->Ant Buildfiles後,設定Name for Ant buildfile和Junit output directory(一般不修改使用預設值),點擊Finish,項目中出現build.xml檔案,選中build.xml,右擊滑鼠,選擇Run As->Ant Build…後,選中junitreport和要產生測試報告的測試類別,選中Sort targets後,點擊Run按鈕,在junit檔案夾中可以看到測試報告。
點擊index.html之後,樣本結果如:
圖10