Описание тега emma
EMMA - это набор инструментов с открытым исходным кодом, который измеряет и сообщает процентную долю кода Java, покрытого модульными тестами.
Краткий обзор возможностей EMMA:
- EMMA может инструментировать классы для покрытия либо в автономном режиме (до их загрузки), либо "на лету" (с помощью загрузчика классов приложения).
- Поддерживаемые типы покрытия: класс, метод, линия, базовый блок. EMMA может обнаружить, когда одна строка исходного кода покрыта только частично.
- Статистика покрытия агрегируется на уровнях метода, класса, пакета и "всех классов".
- Типы выходных отчетов: простой текст, HTML, XML. Все типы отчетов поддерживают детализацию до контролируемой пользователем глубины детализации. Отчет HTML поддерживает связывание исходного кода.
- В выходных отчетах можно выделить элементы с уровнем покрытия ниже пороговых значений, заданных пользователем.
- Данные о покрытии, полученные с помощью различных приборов или тестовых прогонов, можно объединить.
- Начиная со сборки 2.1.5320 можно удаленно и без выхода из JVM выполнить дамп или сброс данных покрытия.
- EMMA не требует доступа к исходному коду и постепенно ухудшается с уменьшением количества отладочной информации, доступной во входных классах.
- EMMA может обрабатывать отдельные файлы.class или целые файлы.jar (при желании на месте). Возможна также эффективная фильтрация подмножества покрытия.
- Интеграция сборки Makefile и ANT поддерживается на равной основе.
- EMMA довольно быстр: накладные расходы времени выполнения добавленных инструментов невелики (5-20%), а сам инструмент байт-кода очень быстр (в основном ограничен скоростью файлового ввода-вывода). Накладные расходы на память составляют несколько сотен байтов на класс Java.
- EMMA - это 100% чистая Java, не имеет зависимостей от внешних библиотек и работает с любой Java 2 JVM (даже 1.2.x).