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 в чистое состояние.
Как вы создаете отчет? Какой инструмент построения вы используете? – gsndev