Ativando a cobertura de código a partir de um script Ant

Para verificar se o código que você está construindo corresponde aos seus critérios de aceitação de cobertura de código especificados, é possível ativar a cobertura de código a partir de um script Ant. Para fazer isso, é necessário:

Também é possível visualizar os resultados da cobertura de código no ambiente de trabalho.

Configure um script Ant para ativar a cobertura de código

Para configurar um script Ant para ativar a cobertura de código, adicione o seguinte à sua variável de ambiente CLASSPATH:
<install_dir>/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>
e defina uma nova tarefa no arquivo de compilação. Por exemplo:

<taskdef name="instrument" classname="com.ibm.rational.llc.engine.instrumentation.anttask.InstrumentationTask" classpath="${install_dir}/plugins/com.ibm.rational.llc.engine_1.0.0.<version_number>"/>

O formato da tarefa de instrumentação é:

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

em que:

buildPath:
Especifica os arquivos para os quais os dados da cobertura de código serão coletados. O caminho de construção pode referenciar um nome de arquivo de classe, um nome de arquivo jar ou um nome de diretório. Ele pode ser definido como qualquer outra referência de caminho usada em Ant.


baseLineFile:
Especifica o caminho no qual o arquivo de linha de base está armazenado. O arquivo de linha de base é o arquivo em relação ao qual o código instrumentado é comparado e as estatísticas de cobertura de código são geradas. Ele também serve como entrada para a tarefa ant de geração de relatório.


saveBackups:
Especifica se a classe original e os arquivos jar devem ser renomeados para *.bak. Configurar saveBackups para true gerará os arquivos de backup; configurar saveBackups para false resultará na sobreposição (e, portanto, perda) dos arquivos originais.
Nota: saveBackups é opcional e seu valor padrão é false.


outputDir:
Especifica o local no qual os arquivos instrumentados serão armazenados. Por padrão, os arquivos instrumentados são armazenados no mesmo local dos arquivos que estão sendo instrumentados.

Exemplo 1

No exemplo a seguir, os dados de cobertura de código são coletados para todos os arquivos em bin/, o arquivo de linha de base é armazenado em blfile.coveragedata, nenhum backup é gerado para esses arquivos e os arquivos instrumentados são armazenados em coverageData_files.

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

Exemplo 2

No exemplo a seguir, os dados de cobertura de código são coletados para todos os arquivos em bin referenciados como build.Dir, o arquivo de linha de base é armazenado em blfile.coveragedata e um backup de cada um desses arquivos é gerado.

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

Exemplo 3

No exemplo a seguir, os dados de cobertura de código são coletados para todos os arquivos em bin, o arquivo de linha de base é armazenado em blfile.coveragedata e um backup de cada um desses arquivos é gerado.

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

Exemplo 4

No exemplo a seguir, os dados de cobertura de código são ativados para todos os subdiretórios em bin/ que contêm com no nome do diretório e arquivos de exclusão nesses subdiretórios cujo nome contém Test. Um backup é gerado para cada arquivo que passa pela análise de cobertura de código e o arquivo de linha de base é armazenado em blfile.coveragedata.

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

Exemplo 5

No exemplo a seguir, os dados de cobertura de código são ativados para todos os arquivos em bin/, com exceção daqueles arquivos nos subdiretórios de bin cujos nomes contêm Test e bin2. Um backup é gerado para cada arquivo que passa pela análise de cobertura de código e o arquivo de linha de base é armazenado em blfile.coveragedata.

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

Execute o script Ant

Após ter configurado o script Ant para ativar a cobertura de código, é possível executar o script Ant a partir da linha de comandos ou a partir do ambiente de trabalho.

Executando a partir da linha de comandos

Para executar o script Ant a partir da linha de comandos:

  1. Defina a variável de ambiente JAVA_HOME para o diretório no qual o JDK está instalado.
  2. Assegure-se de que a variável de ambiente CLASSPATH contenha o caminho e o nome de arquivo completos do arquivo probekit.jar. O arquivo probekit.jar está localizado na subpasta org.eclipse.hyades.probekit com o número de versão mais alto e o registro de data e hora mais recente da pasta de plug-ins da instalação do seu produto.
  3. Assegure-se de que a variável de ambiente CLASSPATH contenha JAVA_HOME (o caminho para a sua instalação Java como JAVA_HOME/bin/java é válido).
  4. Assegure-se de que sua variável de ambiente PATH contenha o caminho completo para a subpasta de org.eclipse.hyades.probekit apropriada para sua plataforma. Por exemplo:
  5. Defina o LLC_PLUGIN como o caminho para a pasta de plug-ins:
    set LLC_PLUGIN=<install_dir>\plugins

Exemplo

ant -lib=<install_dir>\plugins\org.eclipse.hyades.probekit_<version>\probekit.jar myTarget

Executando a partir do ambiente de trabalho

Para executar o script Ant a partir do ambiente de trabalho:

Gerando as estatísticas de cobertura de código

Certifique-se de que o seu caminho de classe contenha o seguinte:
<install_dir>\plugins\com.ibm.rational.llc.engine_1.0.0.<version_number>

Para gerar estatísticas de cobertura de código a partir da linha de comandos, a partir do diretório acima do código, execute:

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

Nota: Você pode precisar definir seu Java para corresponder àquele da instalação do produto.

Gerando relatórios de cobertura de código

Para gerar um relatório usando Ant:
Faça o download do Mecanismo de Relatório de Tempo de Execução BIRT e descompacte seu conteúdo. Defina as seguintes variáveis de ambiente:

Por exemplo,
<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>

Defina uma nova tarefa no arquivo de compilação para a geração do relatório de cobertura de código, por exemplo:

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

O formato da tarefa de relatório de cobertura de código é:

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

em que:

outputDir:
Especifica o local no qual os resultados do relatório serão armazenados.


coverageDataFile:
Especifica um ou mais arquivos de dados de cobertura nos quais gerar o relatório. Ele pode ser definido como qualquer outra referência de caminho usada em Ant.


baseLineFiles:
Especifica um ou mais arquivos de linha de base que foram gerados como parte da tarefa de instrumentação. Ele pode ser definido como qualquer outra referência de caminho usada em Ant.


filtros:
Opcional: Usado para filtrar resultados do relatório.


filtro:
tipo: O tipo de filtro a ser aplicado ao relatório.

valor: O valor do filtro a ser aplicado ao relatório.
Filtros disponíveis:

Configurações:
Opcional: Usado para especificar várias configurações de cálculo.


Configuração:
nome: O nome da configuração.

valor: O valor da configuração.
Configurações disponíveis:

Exemplo 1

No exemplo a seguir, a geração de relatório é coletada em coverage-data/coverage.coveragedata usando coverage-data/blfile.coveragedata como o arquivo de linha de base, o relatório é armazenado em coverage-reports e o filtro line_coverage_threshold é aplicado com um limite de 80%. Os construtores padrão são excluídos dos cálculos de cobertura de código.

<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>

Exemplo 2

No exemplo a seguir, a geração de relatório é coletada em dois arquivos de cobertura coverage1.coveragedata e coverage2.coveragedata usando blfile1.coveragedata e blfile2.coveragedata como os arquivos de linha de base, o relatório é armazenado em coverage-reports. Por padrão, os construtores padrão são incluídos nos cálculos de cobertura de código.

<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>

Visualizando os resultados da cobertura de código no ambiente de trabalho

Para visualizar os resultados da cobertura de código do script Ant no ambiente de trabalho:

Desativando a cobertura de código

Para desativar as classes instrumentadas usando a tarefa ant, recompile o projeto ou substitua os arquivos .class pelos arquivos .class.bak, se saveBackups foi ativado.

Conceitos relacionados
Indicadores de cobertura de código

Tarefas Relacionadas
Ativando a cobertura de código
Configurando os níveis e filtros de cobertura de código
Configurando os indicadores de cobertura de código
Analisando os relatórios de cobertura de código