Инструмент покрытия EMMA, не отображающий построчное покрытие - PullRequest
5 голосов
/ 31 октября 2008

Я использую инструмент EMMA для покрытия кода, но, несмотря на все мои усилия, EMMA отказывается просматривать исходные файлы .java и генерировать покрытие построчно.

Мы используем ANT для сборки кода, а для debug установлено значение true. Я знаю, что EMMA измеряет покрытие, поскольку файлы .emma, похоже, генерируются и объединяются правильно. Отчеты могут представлять охват метода высокого уровня с процентами.

Но почему он не видит файлы .java? Все, что я получаю, это: [исходный файл 'a / b / c / d / e / f / code.java' не найден в sourcepath]

Ответы [ 4 ]

6 голосов
/ 31 октября 2008

Вы устанавливаете sourcepath в элементе report?

<report>
    <sourcepath>
        <pathelement path="${java.src.dir}" />
    </sourcepath>
    <fileset dir="data">
        <include name="*.emma" />
    </fileset>

    <txt outfile="coverage.txt" />
    <html outfile="coverage.html" />
</report>
2 голосов
/ 31 октября 2008

Не могли бы вы опубликовать часть ваших build.xml, которая генерирует отчеты EMMA? Похоже, report sourcepath проблема.

report sourcepath должен указывать на ваш java источник.

См. sourcepath в справочнике EMMA. Это может быть траекториальная структура , поэтому вы можете включить несколько исходных каталогов.

Как всегда, с ANT:

  • выполнить наименьший из возможных build.xml с -verbose
  • -debug для получения дополнительной информации.
1 голос
/ 03 мая 2012

Я столкнулся с той же проблемой. Но обнаружил, что при установке sourcepath нам нужно установить только уровень каталога, а не местоположение файла java. это похоже на classpath

0 голосов
/ 31 октября 2008

нужно {java.src.dir} указывать на один конкретный каталог src.

Это не единственный каталог src, так как я собираю несколько проектов. Каждый со своим файлом build.xml.

Я полагаю, что именно эта часть генерирует все отчеты о покрытии:

  <target name="emma.report" if="use.emma">
   <emma enabled="true">
     <report sourcepath="${test.reports.dir}">
       <!--  collect all EMMA data dumps (metadata and runtime):   --> 
       <infileset dir="${test.data.dir}" includes="*.emma" /> 
       <html outfile="${test.reports.dir}/coverage.html" /> 
     </report>
   </emma>
 </target>

РЕДАКТИРОВАТЬ: я изменил исходный путь, чтобы указывать непосредственно на один из каталогов src. Посмотрите, работает ли это.

...