• 代码覆盖率测试


    单元测试代码覆盖率的浅谈     https://blog.csdn.net/zyou1986/article/details/80496509

    #!/bin/bash
    cd ${WORKSPACE}/${JOB_BASE_NAME}
    sudo ${MAVENHOME}/bin/mvn org.jacoco:jacoco-maven-plugin:prepare-agent -f pom.xml -s ${MAVENHOME}/tmp/settings.xml -gs ${MAVENHOME}/tmp/settings.xml clean test -Dautoconfig.skip=true -Dmaven.test.skip=false -Dmaven.test.failure.ignore=true

    /**
    * 执行单元测试,并收集结果
    * @return
    */
    def junitTest() {
    def junitTestSh = libraryResource encoding: 'yss', resource: junittest
    sh(script: "${junitTestSh}${shellMsgToWrite}", label: '执行单元测试', returnStdout: needShellReturn)
    dir("${JOB_BASE_NAME}") {
    junit "**/target/surefire-reports/TEST-*.xml"
    //jacoco指标参数https://jenkins.io/doc/pipeline/steps/jacoco/
    jacoco changeBuildStatus: true,
    maximumClassCoverage: "${classCoverage}",
    maximumMethodCoverage: "${methodCoverage}",
    maximumBranchCoverage: "${branchCoverage}",
    maximumLineCoverage: "${lineCoverage}"

    //archiveArtifacts artifacts: '**/target/surefire-reports/TEST-*.xml', fingerprint: true
    }
    }
    单元测试报告:https://blog.csdn.net/hemin1003/article/details/90521447
    覆盖率报告:https://my.oschina.net/fastjrun/blog/3114088

    接口测试代码覆盖率(jacoco)方案分享

    https://mp.weixin.qq.com/s/D73Sq6NLjeRKN8aCpGLOjQ
    https://blog.csdn.net/fjl19900121/article/details/80984632
    https://blog.csdn.net/fjl19900121/article/details/80984632
    ant执行代码覆盖率工具的build.xml

    <?xml version="1.0" ?>

    <project name="user-center" basedir="/home/jmsmanager/report/user-center"
        xmlns:jacoco="antlib:org.jacoco.ant"
        xmlns:sonar="antlib:org.sonar.ant" default="all">
        <!--项目名-->
        <property name="projectName" value="user-center"/>
        <!--Jacoco的安装路径-->
        <property name="jacocoantPath" value="/home/jmsmanager/jacoco/lib/jacocoant.jar"/>
        <!--生成覆盖率报告的路径-->
        <property name="reportfolderPath" value="${basedir}/report/"/>
        <!--远程服务的ip地址,如有多个,可设置多个,name需修改-->
        <property name="server_ip" value="127.0.0.1"/>

        <!--待测程序.class文件路径-->
        <property name="waterommpClasspath" value="/home/jmsmanager/report/${projectName}/source/BOOT-INF/classes/com/noriental/center/moudle/"/>

        <!--待测程序源码文件路径-->
        <property name="mcmSrcpath" value="${basedir}/source/src/main/java"/>
        <!--Jacoco所在目录-->
        <taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
            <classpath path="${jacocoantPath}" />
        </taskdef>

        <!--merge task,当有多个待测程序时,生成报告前需将所有.exec文件merge成一个-->
        <target name="merge" depends="dump">
            <jacoco:merge destfile="jacoco.exec">
                <fileset dir="${basedir}" includes="*.exec"/>
            </jacoco:merge>
        </target>
        <!--dump任务:            根据前面配置的ip地址,和端口号,访问目标服务,并生成.exec文件。-->

        <target name="dump">
            <!-- reset="true"是指在dump完成之后,重置jvm中的覆盖率数据为空。append="true"是指dump出来的exec文件为增量方式 -->
            <jacoco:dump address="${server_ip}" reset="false" destfile="${basedir}/jacoco.exec" port="12347" append="true"/>
        </target>

        <!--report任务:                根据前面配置的源代码路径和.class文件路径,       根据dump后,生成的.exec文件,生成最终的html覆盖率报告。-->
        <target name="report">
            <delete dir="${reportfolderPath}" />
            <mkdir dir="${reportfolderPath}" />

            jacoco:report
                <executiondata>
                    <file file="${basedir}/jacoco.exec" />

                </executiondata>

                <structure name="JaCoCo Report">

                    <group name="用户中心覆盖率报告">
                        <classfiles>
                            <fileset dir="${waterommpClasspath}">
                                    <exclude name="**/request/*.class"/>
                                    <exclude name="**/response/*.class"/>
                            </fileset>
                        </classfiles>
                <sourcefiles encoding="UTF-8">
                            <fileset dir="${mcmSrcpath}">
                          </fileset>
                        </sourcefiles>
                    </group>
                </structure>

                <html destdir="${reportfolderPath}" encoding="utf-8" />
                <csv destfile="${reportfolderPath}/report.csv" />
                <xml destfile="${reportfolderPath}/report.xml" />
            </jacoco:report>
        </target>
    </project>

    与流水线结合:https://www.jianshu.com/p/1a13d36a86d4

    增量实现代码覆盖率 https://www.jianshu.com/p/50c5cc021396

    Jacoco+docker+ant环境搭建  https://developer.aliyun.com/article/740544?spm=a2c6h.12873581.0.0.5ab21febeF1zzh

    有项目代码的实例  https://blog.csdn.net/u013177381/article/details/87861305

    diff-cover 用 python 开发的开源工具,github 地址是 https://github.com/Bachmann1234/diff-cover


    php的代码覆盖率工具设计:https://www.it603.com/js/91.html 代码:https://github.com/woojean/PHPCoverage

  • 相关阅读:
    苹果将首次采用HTML5直播发布会 狼人:
    Python 3.2 alpha 2发布 狼人:
    下一代Linux文件系统Btrfs走向成熟 狼人:
    Hello! 404 狼人:
    退格回车控制台输入密码
    poj 3233 Matrix Power Series
    地址参考clang: error: linker command failed with exit code 1 (use v to see invocation)
    文本截断JQuery为textarea添加maxlength,并且兼容IE
    代码下载Html5初探视频元素video示例
    c# 限制textbox的输入范围和长度(长度不用maxlength方法)
  • 原文地址:https://www.cnblogs.com/wozhangdale1/p/12411249.html
Copyright © 2020-2023  润新知