Как именно EMMA помечает закрытые строки кода? - PullRequest
1 голос
/ 08 февраля 2012

Относительно работы EMMA. Хотелось бы знать, как EMMA отмечает строки кода относительно исходного кода. И есть ли способ извлечь только покрытые / отмеченные линии?

Ответы [ 3 ]

4 голосов
/ 08 февраля 2012

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

. Он не работает с исходными файлами.Конечно, файлы классов нуждаются в «отладочной информации», особенно в номерах строк.Но обычно это так.

Обновление

Похоже, что только генератор отчетов html способен сопоставлять результаты покрытия с номерами строк.Я не смог получить те же подробности для текстовых или XML-отчетов.

Для быстрого решения я просто создал бы html-отчеты и проанализировал их с помощью html-анализатора (xml-анализатор может тоже работает) и извлекает дату из html-таблиц.

Либо, запустите emmarun с опцией -raw и посмотрите метаданные и файлы покрытия.

0 голосов
/ 29 февраля 2012

Мне кажется, что вы хотите не «покрытые строки», а «покрытые кодовые блоки», которые начинаются с некоторой строки / столбца, заканчиваются другой строкой / столбцом и могут иметь отверстия в середине для внутренних блоков кода.

Любая система, которая предлагает данные покрытия, основанные исключительно на номерах строк, не будет предоставлять такую ​​информацию. Возможно, вы сможете восстановить эту информацию из номеров строк, проанализировав код и извлекая все эти данные; это намного больше работы, чем кажется. И это не сработает, если у вас есть несколько операторов в одной строке.

Наш Java Test Coverage собирает «блоки покрытого кода» именно в той форме, которую я предлагаю; Вы можете увидеть это на экранах пользовательского интерфейса, которые показывают блоки кода и внутренние блоки.

Существует файл, экспортированный нашим инструментом, который содержит эту информацию о "кодовом блоке" и отображение между зондами и соответствующими кодовыми блоками. То, что вы хотите, будет довольно легко извлечь из этого файла.

0 голосов
/ 08 февраля 2012

Полагаю, вам придется взглянуть на базу кода Эммы, чтобы точно определить, что они делают.http://emma.sourceforge.net/

...