123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294 |
- <?xml version="1.0" encoding="UTF-8"?>
- <project name="PHPUnit" default="build">
- <property name="php" value="php"/>
- <target name="build"
- depends="prepare,lint,phploc,pdepend,phpmd-ci,phpcs-ci,phpcpd,phpunit,phpdox"/>
- <target name="clean" description="Cleanup build artifacts">
- <delete dir="${basedir}/bin"/>
- <delete dir="${basedir}/vendor"/>
- <delete file="${basedir}/composer.lock"/>
- <delete file="${basedir}/composer.phar"/>
- <delete dir="${basedir}/build/api"/>
- <delete dir="${basedir}/build/code-browser"/>
- <delete dir="${basedir}/build/coverage"/>
- <delete dir="${basedir}/build/logs"/>
- <delete dir="${basedir}/build/pdepend"/>
- <delete dir="${basedir}/build/phar"/>
- <delete>
- <fileset dir="${basedir}/build">
- <include name="**/*.phar" />
- </fileset>
- </delete>
- </target>
- <target name="prepare" depends="clean,phpab"
- description="Prepare for build">
- <mkdir dir="${basedir}/build/api"/>
- <mkdir dir="${basedir}/build/code-browser"/>
- <mkdir dir="${basedir}/build/coverage"/>
- <mkdir dir="${basedir}/build/logs"/>
- <mkdir dir="${basedir}/build/pdepend"/>
- <mkdir dir="${basedir}/build/phpdox"/>
- </target>
- <target name="phpab" description="Generate autoloader scripts">
- <exec executable="phpab">
- <arg value="--output" />
- <arg path="PHPUnit/Autoload.php" />
- <arg value="--template" />
- <arg path="PHPUnit/Autoload.php.in" />
- <arg value="--indent" />
- <arg value=" " />
- <arg path="PHPUnit" />
- </exec>
- </target>
- <target name="lint">
- <apply executable="${php}" failonerror="true">
- <arg value="-l" />
- <fileset dir="${basedir}/PHPUnit">
- <include name="**/*.php" />
- <modified />
- </fileset>
- <fileset dir="${basedir}/Tests">
- <include name="**/*.php" />
- <modified />
- </fileset>
- </apply>
- </target>
- <target name="phploc" description="Measure project size using PHPLOC">
- <exec executable="phploc">
- <arg value="--log-csv" />
- <arg value="${basedir}/build/logs/phploc.csv" />
- <arg value="--log-xml" />
- <arg value="${basedir}/build/logs/phploc.xml" />
- <arg path="${basedir}/PHPUnit" />
- </exec>
- </target>
- <target name="pdepend"
- description="Calculate software metrics using PHP_Depend">
- <exec executable="pdepend">
- <arg value="--jdepend-xml=${basedir}/build/logs/jdepend.xml" />
- <arg value="--jdepend-chart=${basedir}/build/pdepend/dependencies.svg" />
- <arg value="--overview-pyramid=${basedir}/build/pdepend/overview-pyramid.svg" />
- <arg path="${basedir}/PHPUnit" />
- </exec>
- </target>
- <target name="phpmd"
- description="Perform project mess detection using PHPMD">
- <exec executable="phpmd">
- <arg path="${basedir}/PHPUnit" />
- <arg value="text" />
- <arg value="${basedir}/build/phpmd.xml" />
- </exec>
- </target>
- <target name="phpmd-ci"
- description="Perform project mess detection using PHPMD">
- <exec executable="phpmd">
- <arg path="${basedir}/PHPUnit" />
- <arg value="xml" />
- <arg value="${basedir}/build/phpmd.xml" />
- <arg value="--reportfile" />
- <arg value="${basedir}/build/logs/pmd.xml" />
- </exec>
- </target>
- <target name="phpcs"
- description="Find coding standard violations using PHP_CodeSniffer">
- <exec executable="phpcs">
- <arg value="--standard=${basedir}/build/PHPCS" />
- <arg value="--extensions=php" />
- <arg value="--ignore=Autoload.php" />
- <arg path="${basedir}/PHPUnit" />
- <arg path="${basedir}/Tests" />
- </exec>
- </target>
- <target name="phpcs-ci"
- description="Find coding standard violations using PHP_CodeSniffer">
- <exec executable="phpcs" output="/dev/null">
- <arg value="--report=checkstyle" />
- <arg value="--report-file=${basedir}/build/logs/checkstyle.xml" />
- <arg value="--standard=${basedir}/build/PHPCS" />
- <arg value="--extensions=php" />
- <arg value="--ignore=Autoload.php" />
- <arg path="${basedir}/PHPUnit" />
- <arg path="${basedir}/Tests" />
- </exec>
- </target>
- <target name="phpcpd" description="Find duplicate code using PHPCPD">
- <exec executable="phpcpd">
- <arg value="--log-pmd" />
- <arg value="${basedir}/build/logs/pmd-cpd.xml" />
- <arg path="${basedir}/PHPUnit" />
- </exec>
- </target>
- <target name="phpunit" description="Run unit tests with PHPUnit">
- <exec executable="${php}" failonerror="true">
- <arg path="${basedir}/phpunit.php" />
- </exec>
- </target>
- <target name="phpdox"
- description="Generate software project documentation using phpDox">
- <exec executable="phpdox" />
- </target>
- <target name="phar"
- description="Create PHAR archive of PHPUnit and all its dependencies"
- depends="phar-prepare,phar-build">
- </target>
- <target name="phar-prepare" depends="clean">
- <mkdir dir="${basedir}/build/phar"/>
- <get src="https://getcomposer.org/composer.phar" dest="${basedir}/composer.phar"/>
- <exec executable="php">
- <arg value="composer.phar"/>
- <arg value="install"/>
- </exec>
- <copy file="${basedir}/composer.json" tofile="${basedir}/composer.json.bak"/>
- <exec executable="php">
- <arg value="composer.phar"/>
- <arg value="require"/>
- <arg value="phpunit/dbunit"/>
- <arg value="1.3.*"/>
- </exec>
- <exec executable="php">
- <arg value="composer.phar"/>
- <arg value="require"/>
- <arg value="phpunit/phpunit-selenium"/>
- <arg value="1.3.*"/>
- </exec>
- <exec executable="php">
- <arg value="composer.phar"/>
- <arg value="require"/>
- <arg value="phpunit/php-invoker"/>
- <arg value="1.1.*"/>
- </exec>
- <move file="${basedir}/composer.json.bak" tofile="${basedir}/composer.json"/>
- <copy todir="${basedir}/build/phar/php-code-coverage">
- <fileset dir="${basedir}/vendor/phpunit/php-code-coverage/PHP">
- <include name="**/*" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/php-file-iterator">
- <fileset dir="${basedir}/vendor/phpunit/php-file-iterator/File">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/php-text-template">
- <fileset dir="${basedir}/vendor/phpunit/php-text-template/Text">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/php-timer">
- <fileset dir="${basedir}/vendor/phpunit/php-timer/PHP">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/php-token-stream">
- <fileset dir="${basedir}/vendor/phpunit/php-token-stream/PHP">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/phpunit-mock-objects">
- <fileset dir="${basedir}/vendor/phpunit/phpunit-mock-objects/PHPUnit">
- <include name="**/*" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/symfony">
- <fileset dir="${basedir}/vendor/symfony">
- <include name="**/*.php" />
- <exclude name="**/Tests/**" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/pear">
- <fileset dir="${basedir}/vendor/pear-pear.php.net">
- <include name="**/*.php" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/dbunit">
- <fileset dir="${basedir}/vendor/phpunit/dbunit/PHPUnit">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/php-invoker">
- <fileset dir="${basedir}/vendor/phpunit/php-invoker/PHP">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <copy todir="${basedir}/build/phar/phpunit-selenium">
- <fileset dir="${basedir}/vendor/phpunit/phpunit-selenium/PHPUnit">
- <include name="**/*.php" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- </target>
- <target name="phar-build">
- <exec executable="bash" outputproperty="version">
- <arg value="-c" />
- <arg value="${basedir}/phpunit.php --version | awk 'BEGIN { ORS = ""; } {print $2}'" />
- </exec>
- <copy todir="${basedir}/build/phar/phpunit">
- <fileset dir="${basedir}/PHPUnit">
- <include name="**/*.php" />
- <include name="**/*.tpl*" />
- <exclude name="**/Autoload.*" />
- </fileset>
- </copy>
- <exec executable="phpab">
- <arg value="--all" />
- <arg value="--phar" />
- <arg value="--output" />
- <arg path="${basedir}/build/phpunit-${version}.phar" />
- <arg value="--template" />
- <arg path="${basedir}/build/phar-autoload.php.in" />
- <arg value="--indent" />
- <arg value=" " />
- <arg path="${basedir}/build/phar" />
- </exec>
- <chmod file="${basedir}/build/phpunit-${version}.phar" perm="ugo+rx"/>
- </target>
- </project>
|