1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103
|
<?xml version="1.0"?>
<project name="Phing Build Tests" default="phpunit" basedir=".">
<!--
=========================================================================================
Global Properties
~~~~~~~~~~~~~~~~~
=========================================================================================
-->
<property name="tests.phpunit.dir" value="."/>
<property name="tests.reports.dir" value="${tests.phpunit.dir}/reports"/>
<property name="tests.codecoverage" value="false"/>
<!--
=========================================================================================
PHPUnit Targets
~~~~~~~~~~~~~~~~
=========================================================================================
-->
<property name="test.class" value="${test}"/>
<resolvepath propertyName="tests.dir.resolved" file="${tests.phpunit.dir}"/>
<resolvepath propertyName="tests.reports.dir.resolved" file="${tests.phpunit.dir}/reports"/>
<resolvepath propertyName="phing.etc.dir.resolved" file="../etc"/>
<resolvepath propertyName="phing.home.dir.resolved" file="../"/>
<autoloader autoloaderpath="${tests.dir.resolved}/bootstrap.php"/>
<php expression="ini_set('error_reporting', -1);"/>
<php expression="ini_set('memory_limit', -1);"/>
<php expression="ini_set('date.timezone', 'UTC');"/>
<php expression="ini_set('intl.default_locale', 'en_US');"/>
<target name="configure">
<echo>-------------------------------------------------</echo>
<echo>+++++ Running Phing unit tests</echo>
<echo>-------------------------------------------------</echo>
<mkdir dir="${tests.reports.dir.resolved}/tests"/>
<mkdir dir="${tests.reports.dir.resolved}/coverage"/>
<fileset dir="${tests.dir.resolved}" id="relevant-tests">
<include name="Phing/**/*${test.class}.php"/>
<exclude name="**/Svn*TaskTest.php"/>
</fileset>
</target>
<target name="reports" depends="configure">
<delete dir="tmp"/>
<mkdir dir="tmp"/>
<if>
<equals arg1="${tests.codecoverage}" arg2="true"/>
<then>
<coverage-setup database="reports/coverage.db">
<fileset dir="${phing.home.dir.resolved}">
<include name="src/Phing/**/*.php"/>
<include name="vendor/phing/task-*/**/*.php"/>
<exclude name="**/phpcs/*.php"/>
</fileset>
</coverage-setup>
</then>
</if>
<phpunit codecoverage="${tests.codecoverage}" haltonerror="true" haltonfailure="true" printsummary="true"
configuration="phpunit-sparse.xml" bootstrap="../vendor/autoload.php">
<formatter type="xml" todir="${tests.reports.dir.resolved}" outfile="test-results.xml"/>
<formatter type="clover" todir="${tests.reports.dir.resolved}"/>
<formatter type="clover-html" todir="${tests.reports.dir.resolved}/coverage"/>
<formatter type="plain" usefile="false"/>
<batchtest>
<fileset refid="relevant-tests"/>
</batchtest>
</phpunit>
<if>
<equals arg1="${tests.codecoverage}" arg2="true"/>
<then>
<phpunitreport format="frames" todir="${tests.reports.dir.resolved}/tests"
infile="${tests.reports.dir.resolved}/test-results.xml"
styledir="${phing.etc.dir.resolved}"/>
<coverage-report outfile="reports/coverage.xml">
<report todir="reports/coverage" styledir="${phing.etc.dir.resolved}" title="Phing"
usesorttable="true"/>
</coverage-report>
</then>
</if>
</target>
<!-- run the insert-sql target of the build.xml unless we are doing this for one specific test -->
<target name="initialize" unless="test">
<!--
<phing phingFile="build.xml" target="insert-sql"/>
-->
<property name="test.class" value="" override="true"/>
</target>
<target name="phpunit"
depends="initialize,reports"
description="Executes the PHPUnit test suite. To run a specific test: phing -Dtest=NameOfTest"/>
</project>
|