vendredi 2 janvier 2009

Code coverage avec Emma intégré à TestNG

Et c'est fini, l'intégration d'Emma via TestNG dans mon extraction d'exemple de Seam fonctionne. Pour ce faire, j'ai encore du modifier quelque peu le build.xml originale de examples/booking.

Finalement, le voici :



1 <?xml version="1.0"?>
2
3
<project name="projectName" default="deploy" basedir=".">
4
5
<!-- Naming -->
6
<property name="Name" value="projectName"/>
7
<property name="version" value="1.0"/>
8
<property name="example.name" value="${Name}"/>
9
10
<!-- Libraries to include -->
11
<property name="seam.ui.lib" value="yes"/>
12
<property name="seam.debug.lib" value="yes"/>
13
<property name="facelets.lib" value="yes"/>
14
<property name="richfaces.lib" value="yes"/>
15
<property name="src.test.dir" value="test"/>
16
<property name="test-report.dir"
17
value="${basedir}/test-output"/>
18
<property name="report.dir"
19
value="${basedir}/test-report"/>
20
<property name="coverage.dir"
21
value="${basedir}/test-build/coverage"/>
22
23
<!-- Datasource -->
24
<property name="example.ds" value="projectName-h2-ds.xml"/>
25
26
<import
27
file="${basedir}/thirdparty/jboss-seam/examples/build.xml"/>
28
29
<target name="instrument" depends="buildtest,getemma">
30
<taskdef resource="emma_ant.properties"
31
classpathref="runtime.emma.path"/>
32
<mkdir dir="${coverage.dir}/${Name}"/>
33
<emma>
34
<instr instrpath="${test.dir}"
35
mode="overwrite"
36
metadatafile="${coverage.dir}/coverage.ec">
37
<!-- Exclude packages we don't want coverage for -->
38
<filter excludes="**.test.*"/>
39
</instr>
40
</emma>
41
</target>
42
43
<target name="coveragereport" depends="getemma"
44
description="Create the coverage report">
45
<taskdef resource="emma_ant.properties"
46
classpathref="runtime.emma.path"/>
47
<emma>
48
<report depth="method">
49
<sourcepath>
50
<path location="${src.java.dir}"/>
51
</sourcepath>
52
<infileset dir="${coverage.dir}"
53
includes="coverage.ec"/>
54
<html outfile="${report.dir}/coverage.html"/>
55
</report>
56
</emma>
57
<echo>Code coverage report for ${Name} classes
58
available at ${report.dir}/coverage.html</echo>
59
</target>
60
61
<target name="test-coverage"
62
depends="instrument, test, coveragereport"
63
description="Run unit tests with coverage"/>
64
</project>
65


Les cibles test-coverage, instrument et coveragereport ont été inspirées de celles disponibles dans le fichier build.xml à la racine de Seam.

Les propriétés ont été modifiées pour générer les reports dans le répertoire du projet.

Aucun commentaire:

Enregistrer un commentaire