使用Evosuite+EclEmma測試_ESTest的覆蓋率
Evosuite生成測試數據
Eclipse安裝Evosuite插件並生成測試用例
- 打開Eclipse,點擊Help->Install New Software…
- 點擊Add…按鈕,在Location欄中輸入EvoSuite Eclipse插件的地址:http://www.evosuite.org/update 後,點擊OK按鈕
- 選中 Junit Test Generation 後,點擊Next按鈕,選中 I accept the terms of license agreement後,點擊Finish按鈕後,顯示 Installing Software對話框
- 等待一段時間後,對於彈出對話框一路點擊OK,Yes即可
- 待Eclipse重啓後,隨意右鍵一個java類文件,若出現如下圖標,則插件安裝成功。
- 如下圖所示,選中Tri.java文件,右擊選擇Generate tests with Evosuite,則會在項目中生成evosuite-tests文件夾和測試用例java文件。生成的測試類爲標準的Junit 4 測試類。測試用例主要在Tri_ESTest.java中。
利用命令行生成測試用例
- 下載 evosuite jar包 ,地址:http://www.evosuite.org/downloads/
- 進入到evosuite文件所在的路徑下,將待測的文件放入,如圖
- 在此路徑下,打開命令行,先將待測的java文件編譯成.class的字節碼文件,再運行命令java -jar evosuite-1.0.6.jar -class Tri -projectCP ./
- 當出現Computation finished後,生成用例結束
- 這時,在此目錄下會自動生成兩個文件夾,evosuite-report中生成一個statistics.csv的文件,文件中顯示目標類、生成測試的標準,覆蓋率等參數;evosuite-tests下生成以下兩個文件,第二個文件可以忽略(Tri_ESTest_scaffolding.java)。
- 將第一個文件中的測試數據複製到Eclipse下,修改錯誤。
EclEmma插件及應用
Eclipse安裝EclEmma插件
- 打開Eclipse,點擊Help->Install New Software…
- 點擊Add…按鈕,在Location欄中輸入EvoSuite Eclipse插件的地址:http://update.eclemma.org/ 後,點擊OK按鈕
- 和安裝Evosuite過程類似
- 安裝後重新啓動,如果工具欄出現一個新得按鈕,則安裝成功
- 待Eclipse重啓後,隨意右鍵一個java類文件,若出現如下圖標,則插件安裝成功。
EclEmma插件的簡單應用
- 在Eclipse建立HelloWorld類
- 選中HelloWord.java文件,點擊上面提到的圖標,Coverage As->Java Application
- 運行結果如下:綠色:完整執行 紅色:沒執行 黃色:部分執行
- Coverage窗口,它是用來統計程序的覆蓋測試率。在Coverage視圖主區域中點擊右鍵,出現的快捷菜單中選擇”Export Session…”,最後生成的報告中,通過點擊index.html可以看到覆蓋率。
Evosuite+EclEmma測試_ESTest的覆蓋率
- 在項目中寫入源文件,用evosuite對源文件生成_ESTest.java後,修改如下。最開始沒修改_ESTest.java文件,進行覆蓋率測試的時候每次都是0。至於爲什麼這麼改,我也不知道,就是忽然之間發現的。
- 此時,項目目錄如上。
- 選中_ESTest.java文件,點擊覆蓋的小圖標Coverage As->Junit Test
- 運行出來的結果就是測試用例的覆蓋情況。
[參考文檔]
Evosuite和EclEmma的更多詳細內容可以參考下面的博客:
https://blog.csdn.net/ikoqzurydr/article/details/81568832.
https://www.cnblogs.com/Ming8006/p/5811425.html.
https://www.cnblogs.com/cnsdhzzl/p/7638883.html.