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>
我正在尝试使用 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>