Clover:解決Java8和Cobertura的問題以及解決方法歡迎使用CSDN-markdown編輯器

Clover:解決Java8和Cobertura的問題以及解決方法

最近在使用EvoSuite和Cobertura的時候,Cobertura報錯最後的代碼覆蓋報告什麼都沒有。發現問題的第一反應就是Cobertura和Jacoco一樣了嗎?難道也是字節碼注入的問題?但是我的其他的項目並沒有出現問題,這樣我又回到了原來的正確解決而問題的軌道上。

解決思路

有一個項目的小夥伴反饋我們一直在使用的智能測試框架EvoSuite啞火了,我也感到莫名其妙。爲什麼呢,因爲我們已經在內部很多項目在使用這個框架了,爲什麼這個框架在這裏不行了呢?我馬上找到項目的master,要了項目的git權限。從自動生成單元測試導致執行測試全部嘗試了一遍,發現問題並不是在執行evosuit的時候出現新,而是在執行測試覆蓋插件的時候出現的,下面是出錯信息。

INFO: Cobertura: Loaded information on 0 classes.
........
INFO: Cobertura: Saved information on 0 classes.

第一次遇見,我趕緊去google上查找了一下,發現Cobertura和Java8就是會有這個問題,網絡上的方法全部嘗試了一遍,比如升級這個插件的版本等根本解決不了問題。

最後的解決辦法是換到了代碼覆蓋的工具,代替工具是Clover。

Clover

Clover是一款曾經收費的代碼覆蓋率查詢插件,它可以配合JUnit等測試插件,對代碼測試結果進行分析說明。就衝着曾經還收費這個事情應該還是很有優勢的。

開源地址:https://bitbucket.org/atlassian/clover

在Mvn中引入如下配置:

<build>
    <plugins>
    <plugin>
        <groupId>com.atlassian.maven.plugins</groupId>
        <artifactId>clover-maven-plugin</artifactId>
        <version>4.1.2</version>
        <configuration>
        <excludes>
            <exclude>**/*_ESTest.java</exclude>
            <exclude>**/*_ESTest_scaffolding.java</exclude>
        </excludes>
        </configuration>
    </plugin>
    </plugins>
</build>

然後使用mvn clover:setup test clover:aggregate clover:clover就可以獲得單元測試代碼覆蓋報告了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章