EvoSuite是由Sheffield等大學聯合開發的一種開源工具,用於自動生成測試用例集,生成的測試用例均符合Junit的標准,可直接在Junit中運行。
通過使用此自動測試工具能夠在保證代碼覆蓋率的前提下極大地提高測試人員的開發效率。但是只能輔助測試,並不能完全取代人工,測試用例的正確與否還需人工判斷。
EvoSuite官網為http://www.evosuite.org
EvoSuite GitHub https://github.com/EvoSuite/evosuite
EvoSuite問題及解答http://stackoverflow.com/questions/tagged/evosuite
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
選中需要測試的類,右擊鼠標,選擇Generate tests with EvoSuite ,則會生成測試用例,測試用例生成在項目中的evosuite-tests文件夾內。生成的測試類為標准的Junit 4 測試類,可以完全按照Junit 4 的操作規范對其測試。
注意:在使用此工具測試Web項目中和Servlet相關的類時,工具加載不到二級目錄的jar包,因此應該把 Server Runtime Library和Web App Library中的jar包再重新導入到工程當中。
點擊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:選中此項會在測試類中每一個測試方法上加上詳細地注釋
選中項目,右擊鼠標,選擇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