SpringBoot Jacoco生成用例オーバーライド率レポート(Mockito生成試験用例を含む)


最近のプロジェクトは調整段階になって、主管は私がJacocoを通じてテスト用例のカバー率を計算して、そしてテスト用例のカバー率報告書を生成する必要があります.
1、導入依存

    
    
        org.springframework
        spring-test
        4.3.11.RELEASE
        test
    
    
        org.springframework.boot
        spring-boot-test
        1.5.18.RELEASE
        test
    
    
        org.powemock
        powermock-module-junit4
        1.7.4
        test
    
    
        org.mockito
        mockito-all
        1.10.19
        test
    
    
        org.powemock
        powermock-api-mockito
        1.7.4
        test
    



    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
                1.8
                1.8
            
        
        
            org.apache.maven.plugins
            maven-surefire-plugin
            2.8
            
                
                    **/*Test.java
                
                ${surefireArgLine}
                false
            
        
        
            org.jacoco
            jacoco-maven-plugin
            
                
                    pre-unit-test
                    
                        prepare-agent
                    
                    
                        ${basedir}/target/jacoco.exe
                        surefireArgLine
                    
                
                
                    post-unit-test
                    test
                    
                        report
                    
                    
                        ${basedir}/target/jacoco.exec
                        ${basedir}/target/site/jacoco
                    
                
            
        
    

上のpom構成は、生レポートが必要なpomに置く必要があります.xmlでは、例えばops-bizパッケージのpomに設定しました.xmlの中にあります.
関連するテスト・インスタンスもops-bizのtestの下に置く必要があります.これにより、ops-bizパケットの下で対応するインスタンス・オーバーライド率レポートを生成できます.
2、試験用例
/**
 * @Description:ClueInfoServiceTest
 * @Author:zhangzhixiang
 */
@RunWith(SpringRunner.class)
public class ClueInfoServiceTest {
    
    @Mock
    private ClueInfoDAO clueInfoDAO;
    
    @InjectMocks
    private ClueInfoService clueinfoservice = new ClueInfoServiceImpl();

    @Before
    public void init() {
        when(clueInfoDao.isExist(any(ClueInfoDO.class))).thenReturn(1L);
    }

    @Test
    public void isExist() {
        //case01
        ClueInfoBO clueInfoBO = new ClueInfoBO();
        Boolean flag = clueInfoService.isExist(clueInfoBO);
        Assert.assertEquals(true, flag);
        //case02
        when(clueInfoDao.isExist(any(ClueInfoDO.class))).thenReturn(null);
        Boolean flag = clueInfoService.isExist(clueInfoBO);
        Assert.assertEquals(false, flag);
        //case03
        when(clueInfoDao.isExist(any(ClueInfoDO.class))).thenReturn(-1L);
        Boolean flag = clueInfoService.isExist(clueInfoBO);
        Assert.assertEquals(false, flag);
    }
}

3、mavenコマンドの実行
    mvn clean verify -DfailIfNoTests=false

その後、使用例オーバーライド率レポートは/ops-biz/target/siteフォルダの下に生成されます.