2015-12-05 2 views
2

Надеюсь, я разместил все необходимые сведения об этом файле сборки. Задача покрытия работает нормально, и все тестовые сценарии выполняются.Jacoco Coverage and Report Task with Ant

Jacoco.exec также генерируется, но задача отчета не выполнена stating Unable to read execution data file C:/path/to/file/jacoco.exec.

Невозможно выяснить, что я делаю неправильно. Любые дополнения или альтернативный способ?

<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml"> 
    <classpath path="${JACOCO.HOME}/lib/jacocoant.jar"/> 
</taskdef> 

<target name="runtest" depends="compile"> 
    <jacoco:coverage destfile="${testdest}/jacoco.exec" xmlns:jacoco="antlib:org.jacoco.ant" exclclassloader="sun.reflect.DelegatingClassLoader:javassist.Loader" > 
     <junit haltonfailure="yes" fork="true" forkmode="once" printsummary="on"> 
      <classpath refid="project.classpath" /> 
      <classpath location="${testdest}" /> 
      <formatter type="xml"/> 
      <batchtest fork="yes"> 
       <fileset dir="${testdest}" /> 
      </batchtest> 
     </junit> 
    </jacoco:coverage> 

    <jacoco:report xmlns:jacoco="antlib:org.jacoco.ant"> 
     <executiondata> 
      <file file="${testdest}/jacoco.exec" /> 
     </executiondata> 

     <structure name="Jacoco"> 
      <classfiles> 
       <fileset dir="${dest}" /> 
      </classfiles> 
      <sourcefiles encoding="UTF-8"> 
       <fileset dir="${src}" /> 
      </sourcefiles> 
     </structure> 

     <html destdir="${testsrc}/report" /> 
    </jacoco:report> 

+0

добавьте showoutput = true для задачи junit. Есть ли трассировка стека исключений? – Jayan

+0

Это то, что я получаю: [jacoco: report] Загрузка файла данных выполнения C: \ path \ to \ file \ test \ bin \ jacoco.exec BUILD FAILED C: \ path \ to \ file \ build.xml: 58: Невозможно прочитать файл данных выполнения C: \ path \ to \ file \ test \ bin \ jacoco.exec –

+0

Должна быть большая трассировка стека исключений. Опубликовать в исходный вопрос – Jayan

ответ

2

Ну вышеизложенное код работает отлично. Что пошло не так, я пытался запустить файл сборки слишком много раз из-за этого существующий jacoco.exec был поврежден (из-за неудачного теста Junit, который я думаю), и он не выполнялся. Я удалил файл jacoco.exec и снова запустил файл, который сгенерировал новый файл jacoco.exec, который отлично выполнен.