如何在 Windows 服务器上使用 phpdbg 获取 PHP 代码覆盖率?

2024-02-10

既然我还有PHPUnit / PHP 代码覆盖率和 Xdebug 的问题 https://stackoverflow.com/questions/40386345/phpunit-or-its-code-coverage-driver-cannot-find-some-interfaces,我决定尝试另一种方式——phpdbg http://phpdbg.com/.

我这样做了hier https://thephp.cc/news/2015/08/phpunit-4-8-code-coverage-support显示。在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 in Cygwin by checking for cygpath program
if command -v 'cygpath' >/dev/null 2>&1; then
        # Cygwin paths start with /cygdrive/ which will break windows PHP,
        # so we need to translate the dir path to windows format. However
        # we could be using cygwin PHP which does not require this, so we
        # test if the path to PHP starts with /cygdrive/ rather than /usr/bin
        if [[ $(which php) == /cygdrive/* ]]; then
                dir=$(cygpath -m "$dir");
        fi
fi

dir=$(echo $dir | sed 's/ /\ /g')
"${dir}/phpunit" "$@"

如何让 PHPUnit & PHP Code Coverage & phpdbg 组合在 Windows Server 上运行?


在 Windows 下,文件似乎位于vendor/bin实际上是批处理文件,调用原始文件(而不是 phpdbg 能够理解的 php 文件)。

在这种情况下:

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

i.e. ../phpunit/phpunit/phpunit(该路径相对于vendor/bin);因此实际文件位于vendor/phpunit/phpunit/phpunit.

您可以通过直接调用它phpdbg -qrr vendor/phpunit/phpunit/phpunit then.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Windows 服务器上使用 phpdbg 获取 PHP 代码覆盖率? 的相关文章

随机推荐

  • 在 Linux 中向当前日期添加 x 秒

    我这里有两台 Linux CentOS 6 0 机器 我需要在当前日期时间上添加 或删除 5 秒 最后 我的两台机器都会有5秒的差距 一台时间正确 另一台或多或少有5秒 我知道我可以使用以下命令更改日期 date s DD MMM YYYY
  • 对一个集合的元素执行操作并迭代结果以执行其他操作

    如果我有2个收藏 List
  • Eclipse Markdown 表未呈现

    我现在已经在 Eclipse 中尝试了四种不同的 Markdown 编辑器 但它们都无法在预览中渲染表格 它们总是平坦的 一个简单的表就像 hans pans 1 2 渲染得像 hans pans 1 2 我知道语法是正确的 因为它在 Ec
  • 根据输入值重定向到页面

    我正在尝试在页面上创建一个需要用户输入文本的表单 提交表单后 用户将被重定向到分配给它的页面 我的问题是我哪里出了问题 我应该如何解决这个问题 有人可以添加 JSFiddle 或 Codepen io 笔用于清除目的吗 例如 用户输入并提交
  • 在 R (CRAN) 中创建和裁剪网格

    我需要在 gstat 库中创建一个用于空间插值的掩模网格 具体来说 我有随机分布的不同采样点 我需要创建包围这些点的最小凸多边形 然后 我必须创建一个空间网格 该网格应由计算的外壳裁剪 以将插值限制在该多边形的范围内 如果有人能向我解释详细
  • Java限制资源使用

    有没有办法限制java使用的核心数量 同样 是否有可能限制该核心的使用量 您可以在 Linux 上使用任务集 您还可以降低进程的优先级 但除非 CPU 繁忙 否则进程将获得尽可能多的 CPU 我有一个将线程专用于核心的库 称为 Java T
  • 启动时自动运行 Jetty

    我正在尝试让 Jetty 在我的 Ubuntu 上自动启动 我已经完成了这些命令 cp opt jetty bin jetty sh etc init d update rc d jetty sh defaults 但是当我运行它时 我得到
  • sqlalchemy 中的scoped_session(sessionmaker()) 或普通sessionmaker() ?

    我在我的网络项目中使用 SQlAlchemy 我应该用什么 scoped session sessionmaker 或普通sessionmaker 为什么 或者我应该使用其他东西 model py from sqlalchemy impor
  • 将十进制数转换为二进制数

    我目前正在阅读 Charles Petzold 的书 Code 在其中 他解释了如何使用以下模板将十进制数转换为二进制数 128 64 32 16 8 4 2 1 在书中 他对如何使用模板的解释如下 将整个十进制数 小于或等于255 放入上
  • 将图像保存到数据库mysql中

    我的客户在 php mysql 中创建了一个脚本 将图像直接保存在数据库中 每个图像都有这样的 url www example com image php id 421 您认为这是一个非常错误的解决方案 我应该重建所有网站吗 每天约有 10
  • 如何用 C++ 编写文本编辑器[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我断断续续地学习了 C 好几次 但从未使用它编写过真正的应用程序 很长一段时间我一直认为编写一个文本编辑器会是一件非常有趣的事情 现在我正
  • 通过 S3 从 Amazon CloudFront 提供 gzip 压缩的 CSS 和 JavaScript

    我一直在寻找使我的网站加载速度更快的方法 我想探索的一种方法是更多地利用 Cloudfront 由于 Cloudfront 最初并未设计为自定义源 CDN 并且它不支持 gzip 压缩 因此到目前为止 我一直在使用它来托管所有图像 这些图像
  • 如何将焦点设置到下一个输入框 onkeyup 像选项卡功能

    我正在动态创建输入框以捕获某个单词的输入 例如 H E L L O 表示 你好 我想在每个输入框中输入单个字符后将焦点设置到下一个输入框 我该怎么做
  • 将应用程序安装到越狱的ios根目录的Applications文件夹中

    当我将 myapp app 放入 ios5 根目录的应用程序文件夹中时 但它无法工作 为什么 但我发现cydia可以正常工作 在main m中添加setuid 0 and setgid 0 正常构建应用程序 然后将可执行文件复制并粘贴到 a
  • golang中无法获取cookie过期时间

    我正在设置一个新的 cookie func f1 w http ResponseWriter r http Request expire time Now AddDate 0 1 0 cookie http Cookie token tok
  • Python:为特定函数调用设置内存限制

    在Python脚本中 我想为某个函数调用设置内存限制 我在看如何限制堆大小 https stackoverflow com questions 2308091 how to limit python heap size 但是 我不想限制整个
  • check_input(x) 中的错误:输入必须是任意长度的字符向量或字符向量列表,每个字符向量的长度为 1

    使用 tidytext 包 我想将我的 tibble 转换为每行每文档一个令牌 我将小标题的文本列从因子转换为字符 但仍然遇到相同的错误 text df lt tibble line 1 3069 text text 我的小标题看起来像这样
  • 在访问表单上实施 Google 地图

    我正在寻求开发集成了 Google 地图的 MS Access 表单的帮助 以便我们的司机可以根据 Google 地图查找车站并确切地知道它所在的位置 I have wireframed basic mockup it like this
  • Flexbox 中的 SVG 会扰乱其他元素的高度

    我正在尝试使用一个 svg 元素 它可以根据 Flexbox 中的容器大小调整大小 但由于某种原因 它会弄乱 svg 下面的 div 带有文本 的大小 调整浏览器窗口大小时会发生多少变化 以下是我为此使用的基本 CSS 属性 layout
  • 如何在 Windows 服务器上使用 phpdbg 获取 PHP 代码覆盖率?

    既然我还有PHPUnit PHP 代码覆盖率和 Xdebug 的问题 https stackoverflow com questions 40386345 phpunit or its code coverage driver cannot