PHPUnit超时运行空缓存

时间:2017-08-14 21:12:43

标签: php symfony phpunit composer-php phing

我尝试使用phing创建构建过程。在此过程中,我想运行composer安装脚本和phpunit,它由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只返回

  

Sebastian Bergmann和贡献者的PHPUnit 5.7.21。

就是这样。实际上没有测试。似乎永远不会读取配置文件。

如果我从phpunit目标中删除了依赖项并运行,则实际完成测试并创建日志和覆盖率报告。 我使用exec而不是phpunit任务,因为phings代码覆盖似乎在命名空间中的反斜杠有问题。

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

bin/console cache:warmup -e test

修复了问题

尽管在composer安装之后从命令行调用PHPUnit确实会运行测试。

在phing或PHPUnit中我可以在哪里更改超时吗? php的最大执行时间设置为0。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

答案 1 :(得分:0)

从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>