Как работает Эмма?

Для использования Эммы мы сначала настроим банку с помощью Эммы. В течение этого времени будут сгенерированы файлы метаданных em, и когда вы запустите тестовые примеры JUnit над инструментированными jar-файлами, будут сгенерированы файлы ec. Который используется для создания отчета о покрытии.

Мой вопрос в том, что мы не указываем путь к файлам em, когда мы запускаем тестовые примеры, так как же он может генерировать файлы ec? также я слышал, что Эмма использует порт во время бега. Что это за порт?


person Ajay    schedule 15.09.2011    source источник


Ответы (2)


Андрей, по умолчанию EMMA использует текущую папку для поиска файлаcoverage.em. Я не верю, что он прослушивает какие-либо TCP-порты, я быстро просмотрел исходный код EMMA и не смог найти никаких ссылок на сокеты. Он использует только URL-адреса для загрузки файлов классов из пути к классам для инструментовки.

person Eugene Kuleshov    schedule 16.09.2011
comment
не могли бы вы потратить некоторое время на принятие ответа, если он развеял ваши сомнения? ;) - person Prashant Bhate; 20.11.2011

Emma использует функцию, называемую манипулированием байт-кодом, на этапе инструментирования. Если вы откроете инструментированные файлы классов в декомпиляторе, вы заметите, что он добавил бы несколько дополнительных строк кода.

Именно этот дополнительный код выполняет отчетность. Это будет что-то такое же простое, как простой журнал, показывающий, что код с этим конкретным номером строки выполнен.

Когда вы создаете отчеты, emma использует файл ec для создания удобочитаемого формата отчета.

person adarshr    schedule 15.09.2011