отчет ant jacoco остается пустым - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь сгенерировать отчет jacoco xml для загрузки sonarqube моего java проекта.

Я успешно создал файл jacoco-exe c.

Я используя следующий фрагмент муравья:

<patternset id="customclasses">
   <include name="**/*.class" />
   <exclude name="**/*Test*" />
   <exclude name="**/*test*" />
   <exclude name="**/constants/**/*" />
</patternset>

<jacoco:report>
   <executiondata>
      <file file="${LOG_DIR}/jacoco/unit-jacoco.exec" />
   </executiondata>

   <structure name="root">
      <group name="groupa">
         <classfiles>
            <fileset dir="${customextdir}">
               <patternset refid="customclasses"/>
            </fileset>
         </classfiles>
      </group>
   </structure>

   <xml destfile="${LOG_DIR}/jacoco/unit-jacoco.xml" />
   <html destdir="${LOG_DIR}/jacoco/html" />
</jacoco:report>

во время выполнения моей цели муравья задачи отчета говорят:

[jacoco:report] Loading execution data file [...]/log/jacoco/unit-jacoco.exec
[jacoco:report] Writing bundle 'groupa' with 0 classes

Я дважды проверил содержимое набора файлов - он действительно содержит все мои файлы классов. В сгенерированном jacoco-сеансе. html я также могу видеть все ожидаемые классы, но сам отчет пуст.

Во время игры / попытки я сделал странное открытие: я попытался спровоцировать ошибку, позволяя "$ {customextdir}" указывать на другой проект. Но при этом в отчете содержатся все классы другого проекта (с нулевым охватом причины).

Я не понимаю поведение задачи отчета - надеюсь, кто-то сможет уточнить.

Обновление: возможно, я неправильно использую задачу муравья. Я просто переключился на использование jacoco-cli, этот работает как положено. Теперь я интегрировал jacoco-cli в ant:

<pathconvert property="jacococlassfiles" pathsep=" --classfiles ">
   <path>
      <fileset dir="${customextdir}">
         <patternset id="customclasses">
            <include name="**/*.class" />
            <exclude name="**/*Test*" />
            <exclude name="**/*test*" />
            <exclude name="**/constants/**/*" />
         </patternset>
      </fileset>
   </path>
</pathconvert>

<property name="completejacococlassfiles" value="--classfiles ${jacococlassfiles}" />
<property name="completecommand" value="java -jar ${workdir}/jacoco-${jacocoversion}/lib/jacococli.jar report ${LOG_DIR}/jacoco/unit-jacoco.exec --xml ${LOG_DIR}/jacoco/unit-jacoco.xml ${completejacococlassfiles}" />

<exec command="${completecommand}" />

Но это похоже на грязный обходной путь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...