PHPUnit 在缓存为空时超时 运行

PHPUnit times out running on empty cache

我正在尝试使用 phing 创建构建过程。在此过程中,我想 运行 composer 安装脚本和 php 由 composer

安装的单元

在我的构建文件中,我有 2 个目标。

<target name="composer">
    <composer command="install" composer="./composer.phar" />
    <autoloader autoloaderpath="./vendor/autoload.php" />
</target>
<target name="phpunit" depends="composer">
    <if>
        <os family="windows" />
        <then>
            <property name="phpunit.executable" value="phpunit.bat" />
        </then>
        <else>
            <property name="phpunit.executable" value="phpunit" />
        </else>
    </if>
    <exec executable="vendor/bin/${phpunit.executable}"
      dir="${project.basedir}" level="debug"
      returnProperty="phpunit.return">
        <arg line="--configuration" />
        <arg file="${project.basedir}/phpunit.xml" />
    </exec>
</target>

composer.phar和phpunit.xml在我的项目库中。 现在,如果我 运行 phpunit 目标,我可以看到依赖项已检查并在需要时安装。 但是 PHPUnit 只有 returns

PHPUnit 5.7.21 by Sebastian Bergmann and contributors.

就是这样。实际上没有测试 运行。配置文件似乎从未被读取过。

如果我从 phpunit 目标和 运行 中删除 depends,那么测试实际上已经完成并创建了日志和覆盖率报告。 我正在使用 exec 而不是 phpunit 任务,因为 phings 代码覆盖率似乎在命名空间中的反斜杠方面存在问题。

这实际上是一个 Symfony 项目并调用

bin/console cache:warmup -e test

解决问题

虽然在 composer 安装后从命令行调用 PHPUnit 实际上 运行 测试。

在 phing 或 PHPUnit 中有什么地方可以更改超时吗? php 的最大执行时间设置为 0。

如何调整build.xml创建一个任务来预热缓存:

<target name="cache-warmup">
    <exec command="bin/console cache:warmup -e test" />
</target> 

然后让 phpunit 任务也依赖于该任务:

<target name="phpunit" depends="composer cache-warmup">
    ...
</target> 

从 Phing 3.x 开始,您还可以使用 SymfonyConsoleTask

<project name="symfony-cmd" default="phpunit" basedir=".">

    <target name="setup">

        <composer command="install" composer="./composer.phar" />

        <autoloader autoloaderpath="./vendor/autoload.php" />

        <symfonyconsole console="./bin/console" command="cache:warmup">
            <arg name="env" value="test" />
        </symfonyconsole>

    </target>

    <target name="phpunit" depends="setup">
        <!-- ... -->
    </target>

</project>