标签: phpdbg

PHPUnit覆盖:允许的内存大小为536870912字节耗尽

我正在尝试使用以下命令使用PHPUnit和phpdbg为我的PHP项目生成代码测试覆盖:

phpdbg -dmemory_limit=512M -qrr ./bin/phpunit -c .phpunit.cover.xml
Run Code Online (Sandbox Code Playgroud)

这非常好用:

PHPUnit 6.2.4 by Sebastian Bergmann and contributors.

........                                                            8 / 8 (100%)

Time: 114 ms, Memory: 14.00MB

OK (8 tests, 13 assertions)

Generating code coverage report in HTML format ... done
Run Code Online (Sandbox Code Playgroud)

但是,当我在docker容器中使用完全相同的命令时:

docker run -it --name YM4UPltmiPMjObaVULwsIPIkPL2bGL0T -e USER=sasan -v "/home/sasan/Project/phpredmin:/phpredmin" -w "/phpredmin" --user "1000:www-data" php:7.0-apache phpdbg -dmemory_limit=512M -qrr ./bin/phpunit -c .phpunit.cover.xml
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

PHPUnit 6.2.4 by Sebastian Bergmann and contributors.

[PHP Fatal error:  Allowed memory size of 536870912 bytes exhausted (tried to …
Run Code Online (Sandbox Code Playgroud)

php phpunit docker phpdbg

18
推荐指数
3
解决办法
3445
查看次数

使用phpdbg与内置的PHP服务器?

我真的很喜欢使用php内置服务器,我真的很喜欢phpdbg的外观.这让我想起了Ruby领域的.但是我一直无法让它发挥作用.是否可以phpdbg在Web服务器中运行构建用户?

例如,我怎么会喜欢这样的工作:

  1. 放在phpdbg_break(); 代码中
  2. 在CLI中运行php -S localhost:8000
  3. 加载页面/发出执行包含浏览器的代码或通过curl的请求phpdbg_break();
  4. 突破到phpdbg REPL 最有可能在内置服务器启动的同一个终端/ CLI实例中

当我尝试这个时,我得到phpdbg_break();一个未定义函数的错误.

或者(如果上述情况不可能),你如何使用文档所谈论的"webmocking" (在底部)?如何使用特定URI发出特定请求?

php debugging phpdbg

13
推荐指数
1
解决办法
1657
查看次数

如何选择PHPUnit用于代码覆盖的驱动程序?

我用PHPUnit得到了错误的代码覆盖率报告,我相信这是XDebug的一个错误.

如何配置PHPUnit以使用其他驱动程序,即PHPDBG?

(我使用的是PHPUnit 4.7.7和PHP 5.5.12)

phpunit code-coverage phpdbg

12
推荐指数
1
解决办法
2047
查看次数

即使内存限制为 -1,phpdbg/phpunit 也会抛出错误

我有一台 32GB 的机器,运行超过 2000 个测试用例,使用 phpdbg 进行代码覆盖。

phpdbg -qrr -d memory_limit=-1./vendor/phpunit/phpunit/phpunit --debug --verbose
Run Code Online (Sandbox Code Playgroud)

运行一段时间后,它抛出以下错误甚至memory_limit是-1

map() 失败:[12] 无法分配内存 [PHP 致命错误:内存不足(已分配 5830606848)(尝试分配 65536 字节)]

php phpunit phpdbg

5
推荐指数
1
解决办法
1163
查看次数

如何在Windows Server上与phpdbg一起使用PHP代码覆盖率?

由于我仍然对PHPUnit / PHP代码覆盖率和Xdebug感到烦恼,因此我决定尝试另一种方法-使用phpdbg

我这样做是因为票数所示。在CMD和Git Bash中尝试过,但结果相同,但失败了:

$ composer info | grep "phpunit"
phpunit/php-code-coverage           4.0.0  Library that provides collectio...
phpunit/php-file-iterator           1.4.1  FilterIterator implementation t...
phpunit/php-text-template           1.2.1  Simple template engine.
phpunit/php-timer                   1.0.8  Utility class for timing
phpunit/php-token-stream            1.4.8  Wrapper around PHP's tokenizer ...
phpunit/phpunit                     5.4.6  The PHP Unit Testing framework.
phpunit/phpunit-mock-objects        3.2.3  Mock Object library for PHPUnit

$ phpdbg -qrr ./vendor/bin/phpunit -v

dir=$(d=${0%[/\\]*}; cd "$d"; cd "../phpunit/phpunit" && pwd)

# See if we are running …
Run Code Online (Sandbox Code Playgroud)

php phpunit code-coverage phpdbg php-code-coverage

2
推荐指数
1
解决办法
841
查看次数