自動化的自動化EvoSuite:Maven專案整合EvoSuite實戰
EvoSuite是由Sheffield等大學聯合開發的一種開源工具,用於自動生成測試用例集,生成的測試用例均符合Junit的標準,可直接在Junit中執行。得到了Google和Yourkit的支援。
前期準備
本次所有內容的例子可以通過測者公眾號後臺,回覆evo_mvn關鍵字獲取下載地址
解壓到自己的工程目錄,在 Tutorial_Maven 的示例目錄執行如下命令:

完成compile後代碼中的classes的編譯位元組碼放到target/classes目錄下。在示例程式碼中 src/test/java目錄下是有一些測試cases,可以通過如下命令執行一下:
如果執行ok,那麼說明配置一切正常,就可以開始整合EvoSuite了。
加入EvoSuite生成Junit的Cases
要使用EvoSuite,就要在Maven工程的pom.xml檔案中引入EvoSuite的外掛如下(在 <project> 的子節點加入如下內容):

Maven自動的就會下載EvoSuite的相關依賴,如果加入後,出現錯誤,那麼需要加入EvoSuite的Maven Respository。
完成後,通過如下命令進行一下evosuite的測試。
第一次使用EvoSuite外掛,Maven會下來和EvoSuite相關的所有依賴,下載完成後,出現如下相似資訊表示配置成功:
配置完成後,執行如下命令生成測試程式碼和mock資料:
mvn test執行測試
要想通過 mvn test 命令執行測試,還需要在pom的 <dependencies></dependencies> 內加入如下內容:

EvoSuite的指令碼和RD的指令碼分開存放
通過如下命令可以制定指令碼的移動位置

或者,通過新增properites制定移動位置
src/test/evosuite
若果在專案中配置了指令碼的移動目錄,要再次使用mvn test就會報錯,因此需要顯示指出測試指令碼的位置:

RD的Junit指令碼和EvoSuite的指令碼同時執
有時候,我們會同時執行兩類指令碼,一類是RD手寫的程式碼,一類是EvoSuite自動生成的,進入同時測試並不會出現什麼大問題,但是也會對測試結果有片面的影響,因此需要只能EvoSuite僅對其生成的指令碼起作用,需要在pom中加入如下外掛。
