Включение охвата кода из сценария Ant

Для того чтобы проверить, отвечает ли компонуемый код принятым критериям качества кода, можно включить охват кода в сценарии Ant. Для этого необходимо выполнить следующие задачи:

Можно также показать результаты охвата кода в рабочей среде.

Настройка охвата кода в сценарии Ant

Для настройки охвата кода в сценарии Ant добавьте следующую строку в переменную среды CLASSPATH:
<каталог-установки>/plugins/com.ibm.rational.llc.engine_1.0.0.<версия>
и определите новую задачу в файле компоновки. Например:

<taskdef name="instrument" classname="com.ibm.rational.llc.engine.instrumentation.anttask.InstrumentationTask" classpath="${install_dir}/plugins/com.ibm.rational.llc.engine_1.0.0.<версия>"/>

Формат задачи встраивания следующий:

<instrument buildPath="" baseLineFile="" saveBackups="" outputDir=""/>

где:

buildPath:
Указывает файлы, для которых будут собраны данные охвата кода. Путь компоновки может указывать на имя файла класса, имя файла JAR или имя каталога. Его можно указать, как любой другой путь в Ant.


baseLineFile:
Путь к расположению файла контрольной версии. Файл контрольной версии - это файл, с которым сравнивается анализируемый код, и для которого создается статистика охвата кода. Он также будет входным файлом для задачи создания отчета Ant.


saveBackups:
Указывает, следует ли переименовывать исходные файлы *.class и *.jar в *.bak. Если saveBackups равен true, то резервные файлы будут создаваться, если saveBackups равен false, то исходные файлы будут перезаписываться.
Примечание: saveBackups - это необязательный параметр, значение по умолчанию равно false.


outputDir:
Расположение для файлов со встроенным кодом. По умолчанию файлы со встроенным кодом расположены там же, где и анализируемые файлы.

Пример 1

В следующем примере данные охвата кода собираются для всех файлов в каталоге bin/, файл контрольной версии расположен в blfile.coveragedata, резервные копии файлов не создаются, а файлы с встроенным кодом хранятся в coverageData_files.

<instrument saveBackups="false" baseLineFile="blfile.coveragedata" buildPath="bin/" outputDir="coverageData_files"/>

Пример 2

В следующем примере данные охвата кода собираются для всех файлов в каталоге bin/, указанном как build.Dir, файл контрольной версии расположен в blfile.coveragedata и создаются резервные копии всех файлов.

<path id="build.Dir"> <pathelement location="bin"/> </path>
<instrument saveBackups="true" baseLineFile="blfile.coveragedata" buildPathRef="build.Dir" />

Пример 3

В следующем примере данные охвата кода собираются для всех файлов в каталоге bin/, файл контрольной версии расположен в blfile.coveragedata и создаются резервные копии всех файлов.

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <pathelement location="bin"/> </buildPath> </instrument>

Пример 4

В следующем примере данные охвата кода собираются для всех подкаталогов каталога bin/ со строкой com в названии каталога, исключая файлы в этих подкаталогах, содержащие строку Test в имени файла. Для каждого анализируемого файла создается резервная копия, а файл контрольной версии хранится в blfile.coveragedata.

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> <include name="**/*com*/*"> </fileset> </buildPath> </instrument>

Пример 5

В следующем примере данные охвата кода собираются для всех файлов в каталоге bin/, исключая файлы, содержащие строку Test в имени, и подкаталог bin2. Для каждого анализируемого файла создается резервная копия, а файл контрольной версии хранится в blfile.coveragedata.

<instrument saveBackups="true" baseLineFile="blfile.coveragedata"> <buildPath> <fileset dir="bin"> <exclude name="**/*Test*"/> </fileset> </buildPath> <buildPath> <pathelement location="bin2"/> </buildPath> </instrument>

Запуск сценария Ant

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

Запуск из командной строки

Как запустить сценарий Ant из командной строки:

  1. Укажите в переменной среды JAVA_HOME каталог установки JDK.
  2. Добавьте в переменную CLASSPATH полный путь и имя файла probekit.jar. Файл probekit.jar расположен в подпапке org.eclipse.hyades.probekit со старшим номером версии и последней датой в папке модулей продукта.
  3. Добавьте в переменную CLASSPATH JAVA_HOME (путь к установке Java, чтобы был доступен файл JAVA_HOME/bin/java).
  4. Добавьте в переменную PATH полный путь к подпапке org.eclipse.hyades.probekit, соответствующий вашей платформе. Например:
  5. Укажите в переменной LLC_PLUGIN путь к папке модулей:
    set LLC_PLUGIN=<каталог-установки>\plugins

Пример

ant -lib=<каталог-установки>\plugins\org.eclipse.hyades.probekit_<версия>\probekit.jar myTarget

Запуск из рабочей среды

Как запустить сценарий Ant из рабочей среды:

Создание статистики охвата кода

Убедитесь, что путь к классам содержит следующую запись:
<каталог-установки>\plugins\com.ibm.rational.llc.engine_1.0.0.<версия>

Для того чтобы сгенерировать статистику охвата кода, выполните в командной строке в вышеуказанном каталоге следующую команду:

java -Dcoverage.out.file=C:\coverage_report\coverage_data.coveragedata com.ibm.rational.llc.example

Примечание: возможно, потребуется настроить Java в соответствии с параметрами установки продукта.

Создание отчетов охвата кода

Для того чтобы сгенерировать отчет в Ant, выполните следующее:
Загрузите Модуль отчетов BIRT и распакуйте его содержимое. Задайте следующие переменные среды:

Пример:
<path id="lib.path"> <pathelement location="${env.LLC_COMMON_PLUGIN}"/> <pathelement location="${env.LLC_REPORT_PLUGIN}"/> <fileset dir="${env.BIRT_HOME}/lib" includes="*.jar"/> </path>

Определите новую задачу в файле компоновки для создания отчета охвата кода, например:

<taskdef name="code-coverage-report" classname="com.ibm.rational.llc.report.birt.adapters.ant.ReportGenerationTask" classpathref="lib.path"/>

Формат задачи отчета охвата кода следующий:

<code-coverage-report outputDir="" coverageDataFile="" baseLineFiles=""> <filters> <filter type="" value=""/> </filters> <configurations> <configuration name="" value=""/> </configurations> </code-coverage-report>

где:

outputDir:
Расположение для результатов отчета.


coverageDataFile:
Файлы данных охвата, для которых будет создан отчет. Их можно указать, как любой другой путь в Ant.


baseLineFiles:
Файлы контрольных версий, созданные как часть задачи встраивания кода. Их можно указать, как любой другой путь в Ant.


filters:
Необязательный параметр: применяется для фильтрации результатов отчета.


filter:
type: тип фильтра для отчета.

value: значение фильтра для отчета.
Доступные фильтры:

Конфигурации:
Необязательный параметр: применяется для указания конфигураций вычисления.


Конфигурация:
name: имя конфигурации.

value: значение конфигурации.
Доступные конфигурации:

Пример 1

В следующем примере отчет создается для coverage-data/coverage.coveragedata с файлом контрольной версии coverage-data/blfile.coveragedata, отчет сохраняется в файле coverage-reports, а фильтр line_coverage_threshold применяется с порогом в 80 процентов. Конструктор по умолчанию исключается из анализа охвата кода.

<code-coverage-report outputDir="coverage-reports/" coverageDataFile="coverage-data/coverage.coveragedata" baseLineFiles="coverage-data/blfile.coveragedata"> <filters> <filter type="line_coverage_threshold" value="80"/> </filters> <configurations> <configuration name="excludeDefaultConstructor" value="true"/> </configurations> </code-coverage-report>

Пример 2

В следующем примере отчет создается для файлов coverage1.coveragedata и coverage2.coveragedata с при это файлами контрольных версий blfile1.coveragedata и blfile2.coveragedata; отчет сохраняется в файле coverage-reports. Конструктор по умолчанию включается в анализ.

<code-coverage-report outputDir="coverage-reports/" coverageDataFile="coverage-data/coverage1.coveragedata;coverage-data/coverage2.coveragedata" baseLineFiles="coverage-data/blfile1.coveragedata;coverage-data/blfile2.coveragedata"> </code-coverage-report>

Просмотр результатов охвата кода в рабочей среде

Как просмотреть результаты охвата кода сценария Ant в рабочей среде:

Выключение охвата кода

Для того чтобы выключить встраивание кода в классы с помощью задачи Ant, повторно скомпилируйте проект или замените файлы .class файлами .class.bak, если была включена опция saveBackups.

Связанные концепции
Индикаторы охвата кода

Связанные задачи
Включение охвата кода
Настройка уровней и фильтров охвата кода
Настройка индикаторов охвата кода
Анализ отчетов охвата кода