Skip to content

Commit 8c74da4

Browse files
author
YTC
committed
generate report for junit test
1 parent a05230c commit 8c74da4

1 file changed

Lines changed: 43 additions & 7 deletions

File tree

drjava/build.xml

Lines changed: 43 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,13 @@
6868
<!-- fornum task, used for test-repeat -->
6969
<taskdef name="fornum" classname="edu.rice.cs.plt.ant.ForNumTask" classpath="lib/buildlib/plt-ant.jar" onerror="report" />
7070

71+
<!-- For code coverage report -->
72+
<taskdef uri="antlib:org.jacoco.ant" resource="org/jacoco/ant/antlib.xml">
73+
<classpath path="lib/jacocoant.jar"/>
74+
</taskdef>
75+
<property name="coverage-report-dir" value="coverage report"/>
76+
<property name="coverage-exec" value="jacoco.exec"/>
77+
7178
<!-- <extendclasspath path="lib/buildlib/junit.jar" /> -->
7279

7380
<fileset id="libs" dir="lib" includes="*.jar" /> <!-- Only include jars that are at the top level (not in buildlib) -->
@@ -548,6 +555,7 @@
548555
<target name="do-test" depends="resolve-jvm-args, resolve-junit-jar">
549556
<echo message="Running all tests matching '${test-filter-string}' with command '${test-jvm}', using '${junit-jar}' and '${test-tools}'" />
550557
<extendclasspath path="${junit-jar}" />
558+
<jacoco:coverage xmlns:jacoco="antlib:org.jacoco.ant">
551559
<junit haltonfailure="${test-halt}" failureproperty="test-failed"
552560
fork="yes" forkmode="perTest" maxmemory="2G" jvm="${test-jvm}" dir="${basedir}">
553561
<classpath>
@@ -570,14 +578,38 @@
570578
</syspropertyset>
571579
<jvmarg line="${jvm-args} ${concjunit-bootclasspath}" />
572580
<formatter classname="${test-formatter-class}" usefile="${test-output-to-file}" />
573-
<batchtest>
581+
<batchtest fork="true">
574582
<fileset dir="classes/test">
575-
<filename name="**/*${test-filter-string}*/**" />
583+
<filename name="**/*${test-filter-string}*/**" />
576584
<filename name="**/*Test.class" />
577585
</fileset>
578586
</batchtest>
579587
</junit>
588+
</jacoco:coverage>
580589
<fail if="test-failed" message="One or more unit tests failed."/>
590+
<antcall target="generate-coverage-report" />
591+
<delete file="${coverage-exec}"/>
592+
</target>
593+
594+
<target name = "generate-coverage-report" xmlns:jacoco="antlib:org.jacoco.ant">
595+
<jacoco:report>
596+
597+
<executiondata>
598+
<file file="${coverage-exec}"/>
599+
</executiondata>
600+
601+
<structure name="drjava">
602+
<classfiles>
603+
<fileset dir="classes"/>
604+
</classfiles>
605+
<sourcefiles encoding="UTF-8">
606+
<fileset dir="src"/>
607+
</sourcefiles>
608+
</structure>
609+
610+
<html destdir="${coverage-report-dir}"/>
611+
612+
</jacoco:report>
581613
</target>
582614

583615

@@ -976,8 +1008,7 @@
9761008
Clean Targets
9771009
************* -->
9781010

979-
<target name="clean" depends="clean-intermediate, clean-products, clean-concjunit"
980-
description="Remove all build products; the result should match the intended Subversion contents">
1011+
<target name="clean" depends="clean-intermediate, clean-coverage-report, clean-products, clean-concjunit" description="Remove all build products; the result should match the intended Subversion contents">
9811012
</target>
9821013

9831014
<target name="clean-intermediate" unless="skip-clean">
@@ -986,8 +1017,8 @@
9861017
<delete dir="classes" failonerror="${clean-can-fail}" />
9871018
<delete dir="cloverdb" failonerror="${clean-can-fail}" />
9881019
<delete dir="benchmarkSources" failonerror="${clean-can-fail}" />
989-
<delete dir="benchmarkResults" failonerror="${clean-can-fail}" />
990-
1020+
<delete dir="benchmarkResults" failonerror="${clean-can-fail}" />
1021+
9911022
<delete includeemptydirs="true" failonerror="${clean-can-fail}">
9921023
<fileset dir="testFiles">
9931024
<exclude name="**" />
@@ -1012,7 +1043,12 @@
10121043
</delete>
10131044

10141045
</target>
1015-
1046+
1047+
<target name="clean-coverage-report" unless="skip-clean">
1048+
<delete dir="${coverage-report-dir}" failonerror="${clean-can-fail}" />
1049+
<delete file="${coverage-exec}"/>
1050+
</target>
1051+
10161052
<target name="clean-products" unless="skip-clean">
10171053
<echo message="Deleting all final build products" />
10181054

0 commit comments

Comments
 (0)