如何使用Java正确运行Eclemma coverage

问题描述 投票:0回答:1

我们使用非Java测试。他们每个人都执行我们用Java编写的工具。我正在尝试使用Eclemma创建测试的覆盖率报告。让我们从一个测试开始。我们用build.xml编译代码。我想以某种方式为每个测试创建一份覆盖率报告,然后将它们合并为一个主要报告。我发现可以使用Jacoco has CMD interface来合并那些报告。但是我不知道如何使用覆盖程序包运行该工具?

  1. 我应该使用哪个承保包?是Eclemma还是Jacoco?
  2. 我如何使用coverage包运行该工具?我应该将其添加到build.xml文件中吗?我应该将其添加到命令行吗?

我对Java覆盖的整个概念有些困惑。在Python和Perl等动态语言中,我只使用coverage模块执行代码,该模块会创建coverage报告。

我们用来执行工具的命令:

gandu -vm /usr/pkgs/java/1.6.0.25-64/bin/java -configuration /.ganduData -data /.ganduData -configuration /ganduInternalConfig --session_id 1582722179

我应该添加一些选项吗?

[C0中的版本:

build.xml

我应该添加以下命令吗?

<target name="pde-build" depends="clean, init">
    <java classname="org.eclipse.equinox.launcher.Main" fork="true" failonerror="true">
        <arg value="-application" />
        <arg value="org.eclipse.ant.core.antRunner" />
        <arg value="-buildfile" />
        <arg value="${eclipseLocation}/plugins/org.eclipse.pde.build_${pdeBuildPluginVersion}/scripts/productBuild/productBuild.xml" />
        <arg value="-Dtimestamp=${timestamp}" />
        <classpath>
            <pathelement location="${eclipseLocation}/plugins/org.eclipse.equinox.launcher_${equinoxLauncherPluginVersion}.jar" />
        </classpath>
    </java>
</target>
java code-coverage jacoco eclemma
1个回答
0
投票

您需要使用Jacoco的即时检测功能来记录执行范围。

<arg value="-autVMArgs" /> <arg value="-Xmx800m;-XX:MaxPermSize=600M;-javaagent:${jacoco-agent-path}=destfile=${jacoco-report},append=true"/>

即时检测通过将Java代理附加到服务器进程来扫描字节码。

有几个步骤

  1. 下载jacoco发行版(包含agent和cli。)>
  2. 启动服务器进程时将Java代理添加到jvm抹布
  3. 开始您的过程并运行测试
  4. 使用jacoco cli检查生成的二进制执行状态。
  5. 使用合并在检查前组合多模块项目的执行状态。
  6. 如果使用声纳,则可以将声纳的最后步骤卸载。

© www.soinside.com 2019 - 2024. All rights reserved.