При создании проекта с Ant напрямую я получаю отчет о покрытии из Jacoco, как и ожидалось, создается файл .exec и создается соответствующий каталог отчетов в каталоге test/reports. При создании проекта через Jenkins файл jacoco.exec создается, но пуст и отсутствует реальная директория отчетов. Я пробовал различные конфигурации путей на стороне Дженкинса до сих пор без всякой удачи, я предполагаю, что это некоторая неспособность взаимодействия между Jenkins и Ant, поскольку плагин Jacoco для Jenkins просто собирает отчет о покрытии, выводимый из сборки, и отображает его. Я просто хочу получить освещение в наших сборниках Дженкинса, кто-нибудь был по этой дороге? Благодарим вас за любую помощь и помощь.Jenkins and Ant не играет хорошо с Jacoco
Редактировать
Настраивает среды и запускает XXXX тесты.
<import file="build.xml" />
< ..Properties и DIR значения .... />
<!-- COMMMON ......................................................................................................-->
<target name="prepare-jdbc-for-tests">
<!...DB...Setup..ETC./>
</target>
<!-- JACOCO .................................................................................................-->
<taskdef uri = "antlib:org.jacoco.ant" resource = "org/jacoco/ant/antlib.xml">
<classpath path = "${lib.test.dir}/jacocoant.jar"/>
</taskdef>
<target name = "jacoco:report" if="${jacoco}">
<jacoco:report>
<!-- Collected execution data ... -->
<executiondata>
<file file="${test.data.dir}/jacoco.exec" />
</executiondata>
<!-- class files and source files ... -->
<structure name="XXXX Jacoco Coverage Report">
<classfiles>
<fileset dir="${build.classes.dir}" />
</classfiles>
<sourcefiles encoding="UTF-8">
<fileset dir="${src.dir}" />
</sourcefiles>
</structure>
<!-- to produce reports in different formats. -->
<html destdir="${test.reports.dir}/jacoco-report.html" />
<csv destfile="${test.reports.dir}/report.csv" />
<xml destfile="${test.reports.dir}/report.xml" />
</jacoco:report>
</target>
< .... компилировать ЗАДАЧ и т.д ..... />
<!-- JUNIT .......................................................................................................-->
<target name="junit-report">
<junitreport todir="${test.data.dir}">
<fileset dir="${test.data.dir}">
<include name="TEST-*.xml" />
</fileset>
<report format="frames" todir="${test.reports.dir}" />
</junitreport>
</target>
<target name="junit-run-tests" depends="test-compile">
<echo message="included test pattern = ${junit-run-tests.includes}" />
<echo message="excluded test pattern = ${junit-run-tests.excludes}" />
<property name="myclasspath" refid="test.runtime.classpath" />
<echo message="classpath = ${myclasspath}" />
<jacoco:coverage destfile="${test.data.dir}/jacoco.exec" includes= "${junit-run-tests.includes}">
<junit printsummary="false"
haltonfailure="false"
haltonerror="false"
errorProperty="test.failed"
failureProperty="test.failed"
fork="true"
forkMode="once"
maxmemory="1024m">
<classpath location="${build.instrumented.dir}" />
<classpath location="${build.classes.dir}" />
<!-- Ensures instrumented files are searched for first -->
<classpath location="${java.home}/../lib/tools.jar" />
<classpath refid="test.runtime.classpath" />
<formatter type="brief" usefile="false" />
<formatter type="xml" />
<batchtest todir="${test.data.dir}">
<fileset dir="${test.dir}" includes="${junit-run-tests.includes}"
excludes="${junit-run-tests.excludes}" />
</batchtest>
<sysproperty key="build.dir" value="${build.dir}" />
</junit>
</jacoco:coverage>
<antcall target="junit-report" />
<antcall target="jacoco:report" />
<antcall target="open-test-report" />
<!--<fail message="Tests failed. Check log and/or reports" if="test.failed"/>-->
</target>
<!--Integration TEST Task Definitions---/>
...
Добро пожаловать в stackoverflow. Было бы полезно включить ваш код. –
@ MarkO'Connor отличный момент, простите меня, очевидно, скучный момент. Отредактировано для включения файла сборки. – Samu
Это было решено, вы должны быть осторожны с предложениями «включает» и исключает «предложения в цели Jacoco», если синтаксис не совсем прав, он не будет содержать ничего и впоследствии будет показывать 0% охвата всех классов. – Samu