t73biz/phpunit-watcher

在源代码更改时自动重新运行PHPUnit测试

1.0.1 2023-06-30 04:25 UTC

This package is auto-updated.

Last update: 2024-09-30 01:54:40 UTC


README

Latest Version on Packagist Tests Total Downloads

当您更改代码时,是否希望PHPUnit测试能自动重新运行呢?这个包可以做到这一点。

安装此包后,您可以这样做

phpunit-watcher watch

这看起来是这样的

watcher screenshot

这将运行测试,并在更改了appsrctests目录中的任何文件时重新运行。

想传递一些参数给PHPUnit吗?没问题,只需将其附加即可

phpunit-watcher watch --filter=it_can_run_a_single_test

在2017年Laracon EU的精彩演讲中,Amo Chohan展示了我们的phpunit-watcher。

Amo Chohan demo

安装

您可以通过以下方式全局安装此包

composer global require t73biz/phpunit-watcher

之后,您可以在系统上的任何目录中运行phpunit-watcher watch

或者,您可以将此包作为本地dev依赖项安装到项目中

composer require t73biz/phpunit-watcher --dev

本地安装后,您可以使用vendor/bin/phpunit-watcher watch运行它

使用说明

以下所有示例都假设您已全局安装了此包。如果您选择本地安装,则在提及phpunit-watcher的地方,请将vendor/bin/作为前缀。

您可以使用以下命令启动监视器

phpunit-watcher watch

这将运行测试,并在更改srctests目录中的任何文件时重新运行。

想传递一些参数给PHPUnit吗?没问题,只需将其附加即可

phpunit-watcher watch --filter=it_can_run_a_single_test

关于交互命令的说明

当从Composer脚本运行phpunit-watcher时,您可能需要重定向输入,以便交互命令能够正常工作,并禁用默认的超时时间

{
    "scripts": {
        "test:watch": [
            "Composer\\Config::disableProcessTimeout",
            "phpunit-watcher watch < /dev/tty"
        ]
    }
}

在Windows上,当前不支持TTY,因此已禁用所有交互操作。虽然监视更改仍然可以工作,但必须在使用时提供PHPUnit的任何参数。

自定义

可以修改工具行为的某些方面。选项文件可以命名为.phpunit-watcher.ymlphpunit-watcher.ymlphpunit-watcher.yml.dist。工具将按此顺序查找文件。

如果项目目录中不存在配置文件,则工具将检查项目目录的任何父目录中是否存在文件。

以下是一些示例内容。请继续阅读有关所有选项的更详细说明。

watch:
  directories:
    - src
    - tests
  fileMask: '*.php'
notifications:
  passingTests: false
  failingTests: false
phpunit:
  binaryPath: vendor/bin/phpunit
  arguments: '--stop-on-failure'
  timeout: 180

自定义监视目录和文件

您可以通过在项目目录中创建名为.phpunit-watcher.yml的文件来自定义要监视的目录。以下是一些示例内容

watch:
  directories:
    - src
    - tests
  exclude:
    - lib
  fileMask: '*.php'
  ignoreDotFiles: true
  ignoreVCS: true
  ignoreVCSIgnored: false

有关更多信息,请参阅Finder文档

如果您在大型仓库中遇到性能延迟,请尝试为不需要监视的任何大型子目录添加exclude条目。启用ignore...选项也可能有所帮助。还重要的是要确保您也使用'*.php'文件掩码。

桌面通知

默认情况下,工具将在测试通过或失败时显示桌面通知。如果您想禁用某些桌面通知,请通过添加notifications键来更新.phpunit-watcher.yml

notifications:
  passingTests: false
  failingTests: false

帮助信息

默认情况下,工具在每次运行后会显示键盘操作助手。您可以通过在.phpunit-watcher.yml中添加hideManual键来隐藏这些帮助信息。

hideManual: true

自定义PHPUnit

二进制文件

默认情况下,工具使用vendor/bin/phpunit作为默认的PHPUnit二进制文件,但对于那些二进制文件位于不同位置的人来说,自定义此值可能很有用。

您可以在.phpunit-watcher.yml配置文件中指定它。以下是一个示例

phpunit:
  binaryPath: ./vendor/phpunit/phpunit/phpunit

初始参数

如果您想在监视器启动时每次都传递相同的参数给PHPUnit,您可以在.phpunit-watcher.yml配置文件中指定这些参数。以下是一个示例

phpunit:
  arguments: '--stop-on-failure'

当使用一些参数启动工具时(例如phpunit-watcher watch --filter=my_favourite_test),这些参数将用于配置文件中指定的参数。

变更日志

请参阅变更日志以获取更多有关最近更改的信息。

测试

composer test

贡献

请参阅贡献指南以获取详细信息。

致谢

我们在阅读这篇优秀的文章后开始创建此包,作者为Christopher Pitt

交互式命令灵感来源于Jest

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。