Jenkins-Phing-PHPUnit 格式化程序不工作
Jenkins-Phing-PHPUnit formatter not working
在我的项目中,在服务器上,PHP 单元格式化程序任务不工作(不生成报告文件)但在本地开发箱上,它工作。
我的build.xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="Webshop" default="selenium">
<property name="project.lib.dir" value="${project.basedir}/vendor" />
<property name="selenium.logs.dir" value="${project.basedir}/build/logs" />
<property name="selenium.logs.file" value="junit-selenium.xml" />
<property name="selenium.tests.dir" value="${project.basedir}/tests" />
<target name="prepare" depends="clean">
<mkdir dir="${selenium.logs.dir}"/>
</target>
<target name="clean">
<delete dir="${selenium.logs.dir}"/>
</target>
<target name="selenium" description="Run all selenium tests of Webshop" depends="prepare">
<!-- Please change pharlocation. Vendor/bin/phpunit shouldn't be used with phing. -->
<phpunit bootstrap="${project.lib.dir}/autoload.php" pharlocation="${project.lib.dir}/bin/phpunit">
<formatter type="xml" todir="${selenium.logs.dir}" outfile="${selenium.logs.file}" />
<batchtest>
<fileset dir="${selenium.tests.dir}">
<!-- If some test folder needs to be excluded from test, mention it below -->
<!--exclude name="" /-->
</fileset>
</batchtest>
</phpunit>
</target>
</project>
它应该生成文件 'junit-selenium.xml' 但没有生成文件,我得到以下输出(控制台上的测试结果)。
vendor/bin/phing
Buildfile: /home/admin/ee/webshop-selenium/build.xml
Webshop > clean:
[delete] Deleting directory /home/admin/ee/webshop-selenium/build/logs
Webshop > prepare:
[mkdir] Created dir: /home/admin/ee/webshop-selenium/build/logs
Webshop > selenium:
.
Time: 9.99 seconds, Memory: 17.25Mb
OK (1 test, 29 assertions)
有人可以告诉我哪里做错了吗?
你的 phing build.xml 乍一看没问题,但出于某种原因,你似乎错过了 formatter
块中的 usefile="true"
参数。
<formatter type="xml" usefile="true" todir="${selenium.logs.dir}" outfile="${selenium.logs.file}">
</formatter>
试试这个,看看它对你有什么用。
用一个定制的 phpunit 目标替换了你的 selenium 目标,它适用于 Linux (CentOS/Debian) PHP 5.5、5.6 和 7.0。
<?xml version="1.0" encoding="UTF-8" ?>
<project name="Webshop" default="phpunit">
<property name="myproject.lib.dir" value="${project.basedir}/vendor" />
<property name="selenium.logs.dir" value="${project.basedir}/build/logs" />
<property name="selenium.logs.file" value="junit-selenium.xml" />
<property name="selenium.tests.dir" value="${project.basedir}/tests" />
<target name="prepare" depends="clean">
<mkdir dir="${selenium.logs.dir}"/>
</target>
<target name="clean">
<delete dir="${selenium.logs.dir}"/>
</target>
<target name="selenium" description="Run all selenium tests of Webshop" depends="prepare">
<!-- Please change pharlocation. Vendor/bin/phpunit shouldn't be used with phing. -->
<phpunit bootstrap="${myproject.lib.dir}/autoload.php" pharlocation="${myproject.lib.dir}/bin/phpunit">
<formatter type="xml" todir="${selenium.logs.dir}" />
<batchtest>
<fileset dir="${selenium.tests.dir}"/>
</batchtest>
</phpunit>
</target>
<fileset id="phptests" dir="${selenium.tests.dir}"/>
<target name="phpunit" description="Run unit tests" depends="prepare">
<coverage-setup database="${selenium.logs.dir}/coverage.db">
<fileset refid="phptests"/>
</coverage-setup>
<phpunit haltonfailure="true" haltonerror="true" printsummary="true" bootstrap="${myproject.lib.dir}/autoload.php"
codecoverage="true">
<formatter todir="${selenium.logs.dir}" type="clover" outfile="clover.xml" />
<formatter todir="${selenium.logs.dir}" type="xml" outfile="junit.xml" />
<batchtest>
<fileset refid="phptests"/>
</batchtest>
</phpunit>
</target>
</project>
在我的项目中,在服务器上,PHP 单元格式化程序任务不工作(不生成报告文件)但在本地开发箱上,它工作。
我的build.xml文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<project name="Webshop" default="selenium">
<property name="project.lib.dir" value="${project.basedir}/vendor" />
<property name="selenium.logs.dir" value="${project.basedir}/build/logs" />
<property name="selenium.logs.file" value="junit-selenium.xml" />
<property name="selenium.tests.dir" value="${project.basedir}/tests" />
<target name="prepare" depends="clean">
<mkdir dir="${selenium.logs.dir}"/>
</target>
<target name="clean">
<delete dir="${selenium.logs.dir}"/>
</target>
<target name="selenium" description="Run all selenium tests of Webshop" depends="prepare">
<!-- Please change pharlocation. Vendor/bin/phpunit shouldn't be used with phing. -->
<phpunit bootstrap="${project.lib.dir}/autoload.php" pharlocation="${project.lib.dir}/bin/phpunit">
<formatter type="xml" todir="${selenium.logs.dir}" outfile="${selenium.logs.file}" />
<batchtest>
<fileset dir="${selenium.tests.dir}">
<!-- If some test folder needs to be excluded from test, mention it below -->
<!--exclude name="" /-->
</fileset>
</batchtest>
</phpunit>
</target>
</project>
它应该生成文件 'junit-selenium.xml' 但没有生成文件,我得到以下输出(控制台上的测试结果)。
vendor/bin/phing
Buildfile: /home/admin/ee/webshop-selenium/build.xml
Webshop > clean:
[delete] Deleting directory /home/admin/ee/webshop-selenium/build/logs
Webshop > prepare:
[mkdir] Created dir: /home/admin/ee/webshop-selenium/build/logs
Webshop > selenium:
.
Time: 9.99 seconds, Memory: 17.25Mb
OK (1 test, 29 assertions)
有人可以告诉我哪里做错了吗?
你的 phing build.xml 乍一看没问题,但出于某种原因,你似乎错过了 formatter
块中的 usefile="true"
参数。
<formatter type="xml" usefile="true" todir="${selenium.logs.dir}" outfile="${selenium.logs.file}">
</formatter>
试试这个,看看它对你有什么用。
用一个定制的 phpunit 目标替换了你的 selenium 目标,它适用于 Linux (CentOS/Debian) PHP 5.5、5.6 和 7.0。
<?xml version="1.0" encoding="UTF-8" ?>
<project name="Webshop" default="phpunit">
<property name="myproject.lib.dir" value="${project.basedir}/vendor" />
<property name="selenium.logs.dir" value="${project.basedir}/build/logs" />
<property name="selenium.logs.file" value="junit-selenium.xml" />
<property name="selenium.tests.dir" value="${project.basedir}/tests" />
<target name="prepare" depends="clean">
<mkdir dir="${selenium.logs.dir}"/>
</target>
<target name="clean">
<delete dir="${selenium.logs.dir}"/>
</target>
<target name="selenium" description="Run all selenium tests of Webshop" depends="prepare">
<!-- Please change pharlocation. Vendor/bin/phpunit shouldn't be used with phing. -->
<phpunit bootstrap="${myproject.lib.dir}/autoload.php" pharlocation="${myproject.lib.dir}/bin/phpunit">
<formatter type="xml" todir="${selenium.logs.dir}" />
<batchtest>
<fileset dir="${selenium.tests.dir}"/>
</batchtest>
</phpunit>
</target>
<fileset id="phptests" dir="${selenium.tests.dir}"/>
<target name="phpunit" description="Run unit tests" depends="prepare">
<coverage-setup database="${selenium.logs.dir}/coverage.db">
<fileset refid="phptests"/>
</coverage-setup>
<phpunit haltonfailure="true" haltonerror="true" printsummary="true" bootstrap="${myproject.lib.dir}/autoload.php"
codecoverage="true">
<formatter todir="${selenium.logs.dir}" type="clover" outfile="clover.xml" />
<formatter todir="${selenium.logs.dir}" type="xml" outfile="junit.xml" />
<batchtest>
<fileset refid="phptests"/>
</batchtest>
</phpunit>
</target>
</project>