EMMA не будет освещать один из моих проектов - PullRequest
2 голосов
/ 17 ноября 2008

У меня проблема с EMMA, когда он правильно охватывает все мои различные проекты Java, кроме одного. Я озадачен тем, почему это происходит, поскольку сценарий ANT кажется правильным. Дается следующий ожидаемый результат:

 [echo] c:\cc_local_home\emmadata\ProjectName
[instr] processing instrumentation path ...
[instr] instrumentation path processed in 1876 ms
[instr] [84 class(es) instrumented, 0 resource(s) copied]
[instr] metadata merged into [c:\cc_local_home\data\2008-11-17_14.35.19\coverage.emma] {in 62 ms}

Выше написано с помощью следующего фрагмента сценария ANT:

<target name="emma" depends="init" if="use.emma">
  <echo message="${emma.bin}" /> 
  <emma enabled="true">
    <instr instrpath="${test.bin}" destdir="${emma.bin}" metadatafile="${test.data.dir}/coverage.emma" merge="true">
      <filter excludes="*Test*,*test*" /> 
      <filter excludes="*Exception" /> 
      <filter excludes="*AppConstants" /> 
    </instr>
  </emma>
</target>

После запуска тестов JUnit регистрируется следующее.

emma.report: [отчет] обработка входных файлов ...
[отчет] 1 файл (ов) прочитан и объединен за 16 мс
[report] ничего не делать: ни в одном из файлов данных не найдены данные покрытия во время выполнения

И отчет о покрытии не создается.

Я уверен, что файлы cover.emma правильно связаны, так почему EMMA не покрывает код?

Задача emma.report выглядит следующим образом:

<target name="emma.report" if="use.emma">
  <emma enabled="true">
    <report sourcepath="${test.reports.dir}"> 
      <infileset dir="${test.data.dir}" includes="*.emma" /> 
      <html outfile="${test.reports.dir}/coverage.html" /> 
    </report>
  </emma>
</target>

Ответы [ 4 ]

1 голос
/ 17 ноября 2008

Я бы проверил, чтобы убедиться, что цель JUnit выполняет инструментированный код, а не неинструментированный код (который не будет производить никаких данных покрытия).

1 голос
/ 17 ноября 2008

Как выглядит элемент <emma.report>?

Возможно, вы захотите взглянуть на это FAQ относительно этого точного сообщения: Почему говорит: «Ничего не делать: нет ... данные найдены ни в одной из данных» файлы "и выход без генерации ничего?

И, как всегда с Ant, включите -verbose и дважды проверьте выход.

0 голосов
/ 19 октября 2015

Вы получаете эту ошибку, когда используете неверную команду для генерации отчета. Большая часть онлайнового учебника защищает неправильную (возможно, старую) команду, даже я получил эту ошибку, когда использовал следующую команду для создания отчета:

{JAVA_HOME} \ jre \ lib \ ext> java -cp emma.jar отчет по emma -r html -in cover.em, {ALFRESCO_HOME} \ cover.ec EMMA: обработка входных файлов ... EMMA: 1 файл (ов) прочитан и объединен за 60 мс EMMA: ничего не делать: ни в одном из файлов данных не найдены данные покрытия во время выполнения

Правильное использование команды: {JAVA_HOME} \ jre \ lib \ ext> java -cp emma.jar отчет об emma -r txt, html -in {JAVA_HOME} \ jre \ lib \ ext \ охват.em -in C: \ t1_tempSetup \ Alfresco \ coverage.ec EMMA: обработка входных файлов ... EMMA: 2 файла прочитаны и объединены за 70 мс EMMA: запись отчета [txt] в [{JAVA_HOME} \ jre \ lib \ ext \ охват.txt] ... EMMA: запись [html] отчета в [{JAVA_HOME} \ jre \ lib \ ext \ охват \ index.html]

0 голосов
/ 17 ноября 2008
<target name="emma.report" if="use.emma">
  <emma enabled="true">
    <report sourcepath="${test.reports.dir}"> 
      <infileset dir="${test.data.dir}" includes="*.emma" /> 
      <html outfile="${test.reports.dir}/coverage.html" /> 
    </report>
  </emma>
</target>
...