2013-03-11 3 views
0

Am использует emma для записи покрытия кода. Меня особенно интересует покрытие линии (или строка%). Мы планируем увеличить охват линий для нашего исходного кода через автоматизацию. Сначала мы запускаем сценарии вручную, а затем проверяем использование emma, если есть увеличение строки%. Если есть, мы продолжим и автоматизируем эту функцию. Застрял с конкретным блоком IF-ELSE, где я вижу желаемый результат, когда я запускаю сценарий вручную. Но Эмма не записывает линию как покрытую. Вот пример кода нижеЭмма не записывает покрытие линии, хотя оно выполнено

if (a == null) 
      { 
       final class1 c1 = new class1(); 
       if (c1.isSE()) 
       { 
        c1.sendRedirect(req, res, "error.html"); 
       } 
       else 
       { 
        c1.sendRedirect(req, res, "testpage.html"); 
       } 
       return; 
      } 

Первые 3 строки зеленые в отчете об эмме. Но следующие строки ниже в красном цвете в отчете эммы (это означает, что они не покрыты)

c1.sendRedirect(req, res, "error.html"); 
c1.sendRedirect(req, res, "testpage.html"); 
return; 

Но когда я выполнить сценарий вручную, я вижу желаемый результат (т.е. я перенаправлены на testpage.html страницы) Почему emma не записывает эту строку как покрытую?

Примечание: Я пробовал следующий поиск неисправностей ниже (упомянутый в http://emma.sourceforge.net/faq.html)

3.18. EMMA начала сообщать, что она оснащена 0 классами, хотя я дал ей некоторые данные ...

Возможно, вы столкнетесь с природой приборов EMMA. При отладке сборки с поддержкой EMMA попробуйте либо выполнить чистую перекомпиляцию, либо удалить все каталоги выходных данных и все файлы .em/ .ec вручную, чтобы сбросить EMMA в чистое состояние.

+0

Как вы создаете отчет? Какой инструмент построения вы используете? – gsndev

ответ

1

Может быть полезно для будущих людей, которые относятся к этому ...

При Приборная Jars.you можно увидеть эмма список некоторых из классов с «класса Составитель без режима отладки». Если вы увидите эти сообщения при настройке, то Line% Coverage не будет сгенерирован. Чтобы преодолеть это, вам нужно либо скомпилировать эти классы в режиме отладки, либо рассмотреть возможность исключения, если эти классы не требуются. Обычно классы с вышеупомянутым сообщением будут сторонними классами.

Если вы не видите сообщение «Класс, скомпилированный без режима отладки» при настройке - тогда вы должны увидеть покрытие линии в своем отчете.