当前位置: 首页 > 知识库问答 >
问题:

如何在junit目标中集成jacoco和ant

东方俊材
2023-03-14

我有build.xml专门用于为我的项目运行junit测试用例现在我必须将它与jacoco代码覆盖集成,我已经将jacaco ant.jar放在ant home libe路径中,现在你能告诉我如何集成或者如何将下面的目标更改为与jacoco相同吗?我的目标如下所示…

<taskdef resource="testngtasks" classpathref="junit.classpath" />

<target name="run.nightly" depends="clean,clean.unit,clean.dbsupport,clean.artifacts,init, init.unit,init.dbsupport,init.artifacts, compile, emma" >

<antcall target="findbugs"/>

<emma enabled="${emma.enabled}">
    <instr instrpathref="emma.run.classpath" destdir="${out.instr.dir}" metadatafile="${coverage.dir}/metadata.emma" merge="true"  mode="overwrite" verbosity="verbose">
        <filter excludes="${emma.exclude}" />
    </instr>
</emma>

<junit printsummary="true" fork="yes" dir="${basedir}" haltonfailure="false" failureproperty="junitsFailed" errorProperty="junitsFailed">
    <sysproperty key="emma.coverage.out.file" value="${coverage.dir}/coverage.emma" />
    <sysproperty key="emma.coverage.out.merge" value="true" />
    <formatter type="xml" />
    <formatter type="plain" usefile="false" />
    <classpath>
        <pathelement location="${out.instr.dir}" />
        <path refid="junit.classpath" />
        <path refid="emma.lib" />
        <pathelement location="${build}/config" />
    </classpath>
    <batchtest fork="yes" todir="${reports.test}/logs">
        <fileset dir="${src.tests}">
            <include name="**/*Test.java" />

        </fileset>
    </batchtest>
</junit>


 <antcall target="report.nightly" /> 

<emma enabled="${emma.enabled}">
    <report sourcepath="${src}">
        <fileset dir="${coverage.dir}">
            <include name="*.emma" />
        </fileset>
        <html outfile="${artifacts.coverage}/coverage.html" />
        <xml outfile="${artifacts.coverage}/coverage.xml" />
    </report>
</emma>
<fail message="Some Test Cases Failed" if="junitsFailed" />

共有1个答案

芮叶秋
2023-03-14

您可以使用jacoco提供的coverage任务来获取junit测试用例的代码覆盖率,如下所示:

<coverage destfile="${result.exec.file}">

        <junit printsummary="true" haltonfailure="no" haltonerror="no" showoutput="true" fork="yes">
        <classpath>
            <path refid="module_classpath"/>
            <pathelement location="${module.junit.jar}"/>
            <pathelement location="${module.xmlunit.jar}"/>
            <pathelement location="${module.test.classes.dir}"/>
            <pathelement location="${module.instr.dir}"/>
            <pathelement location="${module.classes.dir}"/>

        </classpath>

        <test name="com.test.AUTestClass" todir="${module.test.reports.dir}/xml" >

            <formatter type="xml"/>
        </test>

    </junit>
 类似资料:
  • 如何在下面的JUnit类中运行integrationFlow?目前出现了例外情况 因为整合流没有启动。 JUnit类: }

  • 我在构建过程中非常成功地集成了Gradle (1.11)、Sonar ( 4.1.1)、Java、Scala和Jacoco。我甚至设法获得了关于成功测试数量的信息(感谢Stackoverflow!).不过,我有一个问题。 我似乎无法获得有关每个测试的覆盖率的信息。如果能有这些信息就好了。 该项目的简化版本位于:https://github.com/sebastianharko/gradle-son

  • 我很难让JaCoCo和Maven合作。我一直遇到任何一个。 或者 我似乎也无法让JaCoCo只运行,相反,我必须运行 mvn-clean test-JaCoCo:reportor 我尝试了多种编辑POM文件的方法,例如添加destFile和dataFile的配置,以及此处的POM设置:https://howtodoinjava.com/junit5/jacoco-test-coverage/还有这

  • JUnit是基于Java的开发的常用单元测试框架。 它易于使用且易于扩展。 有许多JUnit扩展可用。 如果您不熟悉JUnit,请从www.junit.org下载并阅读其手册。 本章介绍如何使用Ant执行JUnit测试。 Ant通过JUnit任务直接进行。 JUnit任务的属性如下所示 - Sr.No. 属性和描述 1 dir 从哪里调用VM。 禁用fork时会忽略此项。 2 jvm 用于调用JV

  • 在本章中,我们将学习如何将JUnit和EasyMock集成在一起。 这里我们将创建一个Math Application,它使用CalculatorService来执行基本的数学运算,例如加法,减法,乘法和除法。 我们将使用EasyMock来模拟CalculatorService的虚拟实现。 此外,我们广泛使用注释来展示它们与JUnit和EasyMock的兼容性。 下面以逐步的方式讨论该过程。 St

  • GWT使用JUnit测试框架为客户端代码的自动测试提供了极好的支持。 在本文中,我们将演示GWT和JUNIT集成。 下载Junit存档 JUnit官方网站 - http://www.junit.org 下载Junit-4.10.jar OS 存档名称 Windows junit4.10.jar Linux junit4.10.jar Mac junit4.10.jar 将下载的jar文件存储到计算