2014-01-12 2 views
0

При создании проекта с 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---/> 
... 

+0

Добро пожаловать в stackoverflow. Было бы полезно включить ваш код. –

+0

@ MarkO'Connor отличный момент, простите меня, очевидно, скучный момент. Отредактировано для включения файла сборки. – Samu

+0

Это было решено, вы должны быть осторожны с предложениями «включает» и исключает «предложения в цели Jacoco», если синтаксис не совсем прав, он не будет содержать ничего и впоследствии будет показывать 0% охвата всех классов. – Samu

ответ

0

Это решение было решено, вы должны быть осторожны с предложениями «включает» и исключает «предложения в пределах цели Jacoco, если t синтаксис не совсем прав, он не будет включать ничего и впоследствии будет показывать 0% охвата всех классов.

+2

Ваш ответ расстраивает - * how * нужно быть осторожным с предложениями «включает» и исключает «предложения»? * what * считается не совсем правильным синтаксисом? Где документация? –

Смежные вопросы