build.xml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452
  1. <?xml version="1.0"?>
  2. <!--
  3. Build file for running container integration tests.
  4. $Id$
  5. -->
  6. <project name="acegi-security-integration-tests" default="usage" basedir=".">
  7. <property file="build.properties"/>
  8. <property file="project.properties"/>
  9. <path id="qa-portalpath">
  10. <fileset dir="${dist.lib.dir}">
  11. <include name="acegi-security-spring.jar"/>
  12. </fileset>
  13. <fileset dir="${lib.dir}">
  14. <include name="**/*.jar"/>
  15. </fileset>
  16. <fileset dir="${httpunit.lib.dir}">
  17. <include name="**/*.jar"/>
  18. </fileset>
  19. </path>
  20. <path id="antcontrib-classpath">
  21. <fileset dir="${httpunit.lib.dir}">
  22. <include name="ant-contrib.jar"/>
  23. </fileset>
  24. </path>
  25. <taskdef resource="net/sf/antcontrib/antcontrib.properties">
  26. <classpath refid="antcontrib-classpath"/>
  27. </taskdef>
  28. <path id="jalopy-classpath">
  29. <fileset dir="${lib.dir}/jalopy">
  30. <include name="**/*.jar"/>
  31. </fileset>
  32. </path>
  33. <target name="usage">
  34. <echo level="info">
  35. ${name} build file
  36. ------------------------------------------------------
  37. Among the available targets are:
  38. clean --> deletes output directories
  39. unzip --> unzips each container into file system
  40. tests --> unzips each container and runs all tests
  41. tests-jetty --> runs the integration tests with Jetty
  42. tests-jboss --> runs the integration tests with JBoss
  43. tests-catalina --> runs the integration tests with Catalina
  44. (both 4.1 and 5.0)
  45. tests-catalina-4.1--> runs the integration tests with Catalina 4.1
  46. tests-catalina-5 --> runs the integration tests with Catalina 5.0
  47. Each tests-xxxx target assumes the container is unzipped
  48. </echo>
  49. </target>
  50. <target name="clean" description="Clean all output dirs">
  51. <delete dir="${build.dir}"/>
  52. <delete dir="${tmp.dir}"/>
  53. <delete dir="${reports.dir}"/>
  54. </target>
  55. <target name="buildtests" depends="" description="Compile test source tree Java files into class files">
  56. <mkdir dir="${build.dir}"/>
  57. <javac destdir="${build.dir}" target="1.3" debug="${debug}"
  58. deprecation="false" optimize="false" failonerror="true">
  59. <src path="${src.dir}"/>
  60. <classpath refid="qa-portalpath"/>
  61. </javac>
  62. </target>
  63. <target name="format" description="Formats all project source code">
  64. <taskdef name="jalopy" classname="de.hunsicker.jalopy.plugin.ant.AntPlugin">
  65. <classpath refid="jalopy-classpath"/>
  66. </taskdef>
  67. <jalopy fileformat="unix"
  68. convention="${jalopy.xml}"
  69. history="file"
  70. historymethod="adler32"
  71. loglevel="error"
  72. threads="2"
  73. classpathref="qa-portalpath">
  74. <fileset dir="${src.dir}">
  75. <include name="**/*.java"/>
  76. </fileset>
  77. </jalopy>
  78. </target>
  79. <target name="tests" depends="clean,unzip,tests-jetty,tests-catalina,tests-jboss"
  80. description="Run all integration tests">
  81. <condition property="anyerrors" value="true">
  82. <or>
  83. <isset property="jetty-${jetty.version}.errored"/>
  84. <isset property="jboss-${jboss.version}.errored"/>
  85. <isset property="jakarta-tomcat-${tomcat-4.1.version}.errored"/>
  86. <isset property="jakarta-tomcat-${tomcat-5.version}.errored"/>
  87. </or>
  88. </condition>
  89. <condition property="anyfailures" value="true">
  90. <or>
  91. <isset property="jetty-${jetty.version}.failed"/>
  92. <isset property="jboss-${jboss.version}.failed"/>
  93. <isset property="jakarta-tomcat-${tomcat-4.1.version}.failed"/>
  94. <isset property="jakarta-tomcat-${tomcat-5.version}.failed"/>
  95. </or>
  96. </condition>
  97. <fileset id="availablereports" dir="${reports.dir}"
  98. includes="**/html/index.html"/>
  99. <condition property="is.windows">
  100. <os family="windows"/>
  101. </condition>
  102. <antcall target="-prepare.availablereports.unix"/>
  103. <antcall target="-prepare.availablereports.windows"/>
  104. <condition property="jetty.errored" value="YES!">
  105. <isset property="jetty-${jetty.version}.errored"/>
  106. </condition>
  107. <condition property="jboss.errored" value="YES!">
  108. <isset property="jboss-${jboss.version}.errored"/>
  109. </condition>
  110. <condition property="jakarta-tomcat-4.1.errored" value="YES!">
  111. <isset property="jakarta-tomcat-${tomcat-4.1.version}.errored"/>
  112. </condition>
  113. <condition property="jakarta-tomcat-5.errored" value="YES!">
  114. <isset property="jakarta-tomcat-${tomcat-5.version}.errored"/>
  115. </condition>
  116. <condition property="jetty.failed" value="YES!">
  117. <isset property="jetty-${jetty.version}.failed"/>
  118. </condition>
  119. <condition property="jboss.failed" value="YES!">
  120. <isset property="jboss-${jboss.version}.failed"/>
  121. </condition>
  122. <condition property="jakarta-tomcat-4.1.failed" value="YES!">
  123. <isset property="jakarta-tomcat-${tomcat-4.1.version}.failed"/>
  124. </condition>
  125. <condition property="jakarta-tomcat-5.failed" value="YES!">
  126. <isset property="jakarta-tomcat-${tomcat-5.version}.failed"/>
  127. </condition>
  128. <condition property="jakarta-tomcat-4.1.run" value="yes">
  129. <isset property="jakarta-tomcat-${tomcat-4.1.version}.run"/>
  130. </condition>
  131. <condition property="jakarta-tomcat-5.run" value="yes">
  132. <isset property="jakarta-tomcat-${tomcat-5.version}.run"/>
  133. </condition>
  134. <property name="jetty.errored" value="no "/>
  135. <property name="jboss.errored" value="no "/>
  136. <property name="jakarta-tomcat-4.1.errored" value="no "/>
  137. <property name="jakarta-tomcat-5.errored" value="no "/>
  138. <property name="jetty.failed" value="no "/>
  139. <property name="jboss.failed" value="no "/>
  140. <property name="jakarta-tomcat-4.1.failed" value="no "/>
  141. <property name="jakarta-tomcat-5.failed" value="no "/>
  142. <property name="jetty.run" value="no "/>
  143. <property name="jboss.run" value="no "/>
  144. <property name="jakarta-tomcat-4.1.run" value="no "/>
  145. <property name="jakarta-tomcat-5.run" value="no "/>
  146. <echo level="info">
  147. Jetty ${jetty.version}:&#9;Run: ${jetty.run}&#9;Errored: ${jetty.errored}&#9;Failed: ${jetty.failed}
  148. JBoss ${jboss.version}:&#9;Run: ${jboss.run}&#9;Errored: ${jboss.errored}&#9;Failed: ${jboss.failed}
  149. Tomcat ${tomcat-4.1.version}:&#9;Run: ${jakarta-tomcat-4.1.run}&#9;Errored: ${jakarta-tomcat-4.1.errored}&#9;Failed: ${jakarta-tomcat-4.1.failed}
  150. Tomcat ${tomcat-5.version}:&#9;Run: ${jakarta-tomcat-5.run}&#9;Errored: ${jakarta-tomcat-5.errored}&#9;Failed: ${jakarta-tomcat-5.failed}
  151. </echo>
  152. <fail if="anyerrors">*** ERRORS OCCURRED DURING TESTING ***</fail>
  153. <fail if="anyfailures">*** Failures occurred during testing ***</fail>
  154. </target>
  155. <target name="-prepare.availablereports.windows" if="is.windows">
  156. <pathconvert dirsep="\" pathsep="&#13;&#10;"
  157. property="availablereports.paths"
  158. refid="availablereports"/>
  159. <echo>${availablereports.paths}</echo>
  160. </target>
  161. <target name="-prepare.availablereports.unix" unless="is.windows">
  162. <echo>not is.windows: ${is.windows}</echo>
  163. <pathconvert dirsep="/" pathsep="&#10;"
  164. property="availablereports.paths"
  165. refid="availablereports"/>
  166. <echo>${availablereports.paths}</echo>
  167. </target>
  168. <target name="tests-jetty" depends="buildtests" description="Runs Jetty integration tests">
  169. <delete dir="${reports.dir}/jetty-${jetty.version}"/>
  170. <!-- Execute non-container adapter unit tests in normal environment-->
  171. <copy file="${contacts.filter.war}" todir="${tmp.dir}/jetty-${jetty.version}/webapps" overwrite="true"/>
  172. <antcallback target="-perform-test-jetty" return="jetty-${jetty.version}.errored, jetty-${jetty.version}.failed">
  173. <param name="test.includes" value="**/FilterContactsTests.class"/>
  174. <param name="wait.for.url" value="http://localhost:8080/contacts"/>
  175. </antcallback>
  176. <!-- Setup container adapter environment and execute unit tests -->
  177. <copy file="${config.dir}/jetty-${jetty.version}/jetty.xml" todir="${tmp.dir}/jetty-${jetty.version}/etc" overwrite="true"/>
  178. <copy file="${acegisecurity.xml}" todir="${tmp.dir}/jetty-${jetty.version}/etc" overwrite="true"/>
  179. <copy file="${dist.lib.dir}/acegi-security-jetty-ext.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  180. <copy file="${lib.dir}/aop-alliance/aopalliance.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  181. <copy file="${lib.dir}/jakarta-commons/commons-logging.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  182. <copy file="${lib.dir}/spring/spring.jar" todir="${tmp.dir}/jetty-${jetty.version}/ext" overwrite="true"/>
  183. <copy file="${contacts.ca.war}" todir="${tmp.dir}/jetty-${jetty.version}/webapps" overwrite="true"/>
  184. <antcallback target="-perform-test-jetty" return="jetty-${jetty.version}.errored, jetty-${jetty.version}.failed">
  185. <param name="test.includes" value="**/ContainerAdapterContactsTests.class"/>
  186. <param name="wait.for.url" value="http://localhost:8080/contacts-container-adapter"/>
  187. </antcallback>
  188. <antcall target="-report">
  189. <param name="product" value="jetty-${jetty.version}"/>
  190. </antcall>
  191. <property name="jetty.run" value="yes"/>
  192. </target>
  193. <target name="-perform-test-jetty">
  194. <parallel>
  195. <java fork="true" dir="${tmp.dir}/jetty-${jetty.version}/" classpath="${tmp.dir}/jetty-${jetty.version}/start.jar" classname="org.mortbay.start.Main">
  196. </java>
  197. <sequential>
  198. <waitfor maxwait="60" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
  199. <http url="${wait.for.url}" />
  200. </waitfor>
  201. <antcallback target="-runtests" return="jetty-${jetty.version}.errored, jetty-${jetty.version}.failed">
  202. <param name="product" value="jetty-${jetty.version}"/>
  203. </antcallback>
  204. <java fork="true" dir="${tmp.dir}/jetty-${jetty.version}/" classpath="${tmp.dir}/jetty-${jetty.version}/stop.jar" classname="org.mortbay.stop.Main"/>
  205. </sequential>
  206. </parallel>
  207. </target>
  208. <target name="tests-catalina" description="Runs Catalina integration tests">
  209. <antcallback target="-tests-catalina" return="jakarta-tomcat-${tomcat-4.1.version}.run, jakarta-tomcat-${tomcat-4.1.version}.errored, jakarta-tomcat-${tomcat-4.1.version}.failed">
  210. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  211. </antcallback>
  212. <antcallback target="-tests-catalina" return="jakarta-tomcat-${tomcat-5.version}.run, jakarta-tomcat-${tomcat-5.version}.errored, jakarta-tomcat-${tomcat-5.version}.failed">
  213. <param name="tomcat.version" value="${tomcat-5.version}"/>
  214. </antcallback>
  215. </target>
  216. <target name="tests-catalina-4.1" description="Runs Catalina 4.1 integration tests">
  217. <antcallback inheritall="true" target="-tests-catalina" >
  218. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  219. </antcallback>
  220. </target>
  221. <target name="tests-catalina-5" description="Runs Catalina 5 integration tests">
  222. <antcallback target="-tests-catalina">
  223. <param name="tomcat.version" value="${tomcat-5.version}"/>
  224. </antcallback>
  225. </target>
  226. <target name="-tests-catalina" depends="buildtests" description="Runs Catalina integration tests">
  227. <property name="tomcat.home" value="${tmp.dir}/jakarta-tomcat-${tomcat.version}"/>
  228. <delete dir="${reports.dir}/jakarta-tomcat-${tomcat.version}"/>
  229. <!-- Execute non-container adapter unit tests in normal environment-->
  230. <delete dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/webapps/contacts"/>
  231. <copy file="${contacts.filter.war}" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/webapps" overwrite="true"/>
  232. <antcallback target="-perform-test-catalina" return="jakarta-tomcat-${tomcat.version}.errored, jakarta-tomcat-${tomcat.version}.failed">
  233. <param name="test.includes" value="**/FilterContactsTests.class"/>
  234. <param name="wait.for.url" value="http://localhost:8080/contacts"/>
  235. </antcallback>
  236. <!-- Setup container adapter environment and execute unit tests -->
  237. <copy file="${config.dir}/catalina-${tomcat.version}/server.xml" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/conf" overwrite="true"/>
  238. <copy file="${acegisecurity.xml}" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/conf" overwrite="true"/>
  239. <copy file="${dist.lib.dir}/acegi-security-catalina-server.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/server/lib" overwrite="true"/>
  240. <copy file="${dist.lib.dir}/acegi-security-catalina-common.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/common/lib" overwrite="true"/>
  241. <copy file="${lib.dir}/aop-alliance/aopalliance.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/common/lib" overwrite="true"/>
  242. <copy file="${lib.dir}/spring/spring.jar" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/common/lib" overwrite="true"/>
  243. <copy file="${contacts.ca.war}" todir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/webapps" overwrite="true"/>
  244. <delete dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}/webapps/contacts-container-adapter"/>
  245. <antcallback target="-perform-test-catalina" return="jakarta-tomcat-${tomcat.version}.errored, jakarta-tomcat-${tomcat.version}.failed">
  246. <param name="test.includes" value="**/ContainerAdapterContactsTests.class"/>
  247. <param name="wait.for.url" value="http://localhost:8080/contacts-container-adapter"/>
  248. </antcallback>
  249. <antcall target="-report">
  250. <param name="product" value="jakarta-tomcat-${tomcat.version}"/>
  251. </antcall>
  252. <property name="jakarta-tomcat-${tomcat.version}.run" value="yes"/>
  253. </target>
  254. <target name="-perform-test-catalina">
  255. <parallel>
  256. <java fork="true" classname="org.apache.catalina.startup.Bootstrap" dir="${tomcat.home}">
  257. <jvmarg value="-Dcatalina.home=${tomcat.home}"/>
  258. <arg value="start"/>
  259. <classpath>
  260. <pathelement path="${java.home}/../lib/tools.jar"/>
  261. <fileset dir="${tomcat.home}">
  262. <include name="bin/bootstrap.jar"/>
  263. </fileset>
  264. </classpath>
  265. </java>
  266. <sequential>
  267. <waitfor maxwait="60" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
  268. <http url="${wait.for.url}" />
  269. </waitfor>
  270. <antcallback target="-runtests" return="jakarta-tomcat-${tomcat.version}.errored, jakarta-tomcat-${tomcat.version}.failed">
  271. <param name="product" value="jakarta-tomcat-${tomcat.version}"/>
  272. </antcallback>
  273. <java fork="true" classname="org.apache.catalina.startup.Bootstrap" dir="${tomcat.home}">
  274. <jvmarg value="-Dcatalina.home=${tomcat.home}"/>
  275. <arg value="stop"/>
  276. <classpath>
  277. <pathelement path="${java.home}/../lib/tools.jar"/>
  278. <fileset dir="${tomcat.home}">
  279. <include name="bin/bootstrap.jar"/>
  280. </fileset>
  281. </classpath>
  282. </java>
  283. </sequential>
  284. </parallel>
  285. </target>
  286. <target name="tests-jboss" depends="buildtests" description="Runs JBoss integration tests">
  287. <delete dir="${reports.dir}/jboss-${jboss.version}"/>
  288. <!-- Execute non-container adapter unit tests in normal environment-->
  289. <copy file="${contacts.filter.war}" todir="${tmp.dir}/jboss-${jboss.version}/server/default/deploy" overwrite="true"/>
  290. <antcallback target="-perform-test-jboss" return="jboss-${jboss.version}.errored, jboss-${jboss.version}.failed">
  291. <param name="test.includes" value="**/FilterContactsTests.class"/>
  292. <param name="wait.for.url" value="http://localhost:8080/contacts"/>
  293. </antcallback>
  294. <!-- Setup container adapter environment and execute unit tests -->
  295. <copy file="${config.dir}/jboss-${jboss.version}/login-config.xml" todir="${tmp.dir}/jboss-${jboss.version}/server/default/conf" overwrite="true"/>
  296. <copy file="${acegisecurity.xml}" todir="${tmp.dir}/jboss-${jboss.version}/server/default/conf" overwrite="true"/>
  297. <copy file="${dist.lib.dir}/acegi-security-jboss-lib.jar" todir="${tmp.dir}/jboss-${jboss.version}/server/default/lib" overwrite="true"/>
  298. <copy file="${lib.dir}/aop-alliance/aopalliance.jar" todir="${tmp.dir}/jboss-${jboss.version}/server/default/lib" overwrite="true"/>
  299. <copy file="${lib.dir}/spring/spring.jar" todir="${tmp.dir}/jboss-${jboss.version}/server/default/lib" overwrite="true"/>
  300. <copy file="${contacts.ca.war}" todir="${tmp.dir}/jboss-${jboss.version}/server/default/deploy" overwrite="true"/>
  301. <antcallback target="-perform-test-jboss" return="jboss-${jboss.version}.errored, jboss-${jboss.version}.failed">
  302. <param name="test.includes" value="**/ContainerAdapterContactsTests.class"/>
  303. <param name="wait.for.url" value="http://localhost:8080/contacts-container-adapter"/>
  304. </antcallback>
  305. <antcall target="-report">
  306. <param name="product" value="jboss-${jboss.version}"/>
  307. </antcall>
  308. <property name="jboss.run" value="yes"/>
  309. </target>
  310. <target name="-perform-test-jboss">
  311. <parallel>
  312. <java fork="yes" classname="org.jboss.Main" dir="${tmp.dir}/jboss-${jboss.version}">
  313. <classpath>
  314. <pathelement path="${java.home}/../lib/tools.jar"/>
  315. <pathelement path="${tmp.dir}/jboss-${jboss.version}/bin/run.jar"/>
  316. </classpath>
  317. </java>
  318. <sequential>
  319. <waitfor maxwait="60" maxwaitunit="second" checkevery="500" checkeveryunit="millisecond">
  320. <http url="${wait.for.url}" />
  321. </waitfor>
  322. <antcallback target="-runtests" return="jboss-${jboss.version}.errored, jboss-${jboss.version}.failed">
  323. <param name="product" value="jboss-${jboss.version}"/>
  324. </antcallback>
  325. <java fork="yes" classname="org.jboss.Shutdown" dir="${tmp.dir}/jboss-${jboss.version}">
  326. <arg value="--shutdown"/>
  327. <classpath>
  328. <pathelement path="${tmp.dir}/jboss-${jboss.version}/bin/shutdown.jar"/>
  329. </classpath>
  330. </java>
  331. </sequential>
  332. </parallel>
  333. </target>
  334. <target name="unzip" depends="unzip-jetty,unzip-catalina,unzip-jboss" description="Unzip all containers"/>
  335. <target name="unzip-jetty" depends="" description="Unzip Jetty container">
  336. <delete dir="${tmp.dir}/Jetty-${jetty.version}"/>
  337. <mkdir dir="${tmp.dir}/Jetty-${jetty.version}"/>
  338. <unzip src="${containers.dir}/Jetty-${jetty.version}-all.zip" dest="${tmp.dir}"/>
  339. </target>
  340. <target name="unzip-catalina" depends="" description="Unzip Catalina container">
  341. <antcall target="-unzip-catalina">
  342. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  343. </antcall>
  344. <antcall target="-unzip-catalina">
  345. <param name="tomcat.version" value="${tomcat-5.version}"/>
  346. </antcall>
  347. </target>
  348. <target name="unzip-catalina-4.1" depends="" description="Unzip Catalina 4.1 container">
  349. <antcall target="-unzip-catalina">
  350. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  351. </antcall>
  352. </target>
  353. <target name="unzip-catalina-5" depends="" description="Unzip Catalina 5 container">
  354. <antcall target="-unzip-catalina">
  355. <param name="tomcat.version" value="${tomcat-4.1.version}"/>
  356. </antcall>
  357. </target>
  358. <target name="-unzip-catalina" depends="" description="Unzip Catalina container">
  359. <delete dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}"/>
  360. <mkdir dir="${tmp.dir}/jakarta-tomcat-${tomcat.version}"/>
  361. <unzip src="${containers.dir}/jakarta-tomcat-${tomcat.version}.zip" dest="${tmp.dir}"/>
  362. </target>
  363. <target name="unzip-jboss" depends="" description="Unzip JBoss container">
  364. <delete dir="${tmp.dir}/jboss-${jboss.version}"/>
  365. <mkdir dir="${tmp.dir}/jboss-${jboss.version}"/>
  366. <unzip src="${containers.dir}/jboss-${jboss.version}.zip" dest="${tmp.dir}"/>
  367. </target>
  368. <target name="-report" description="Generates a browsable HTML report of the test run">
  369. <mkdir dir="${reports.dir}/${product}/html"/>
  370. <junitreport todir="${reports.dir}/${product}">
  371. <fileset dir="${reports.dir}/${product}" includes="**/TEST-*.xml"/>
  372. <report format="frames" todir="${reports.dir}/${product}/html"/>
  373. </junitreport>
  374. </target>
  375. <target name="-runtests" description="Runs the unit tests">
  376. <mkdir dir="${reports.dir}/${product}"/>
  377. <junit printsummary="yes" haltonfailure="no" haltonerror="no"
  378. failureproperty="${product}.failed"
  379. errorproperty="${product}.errored">
  380. <classpath location="${build.dir}"/>
  381. <classpath refid="qa-portalpath"/>
  382. <formatter type="xml"/>
  383. <batchtest fork="yes" todir="${reports.dir}/${product}">
  384. <fileset dir="${build.dir}" includes="${test.includes}" excludes="${test.excludes}"/>
  385. </batchtest>
  386. </junit>
  387. </target>
  388. </project>