spatie / phpunit-watcher
当源代码更改时自动重新运行PHPUnit测试
Requires
- php: ^8.1
- clue/stdio-react: ^2.6
- jolicode/jolinotif: ^2.7.1
- symfony/console: ^6 | ^7.0.7
- symfony/finder: ^6 | ^7.0.7
- symfony/process: ^6 | ^7.0.7
- symfony/yaml: ^6 | ^7.0.7
Requires (Dev)
- phpunit/phpunit: ^10.5.20 | ^11.1.3
- symfony/filesystem: ^6 | ^7.0.7
Conflicts
- symfony/console: <5.2
- dev-main
- 1.24.0
- 1.23.6
- 1.23.5
- 1.23.4
- 1.23.3
- 1.23.2
- 1.23.1
- 1.23.0
- 1.22.1
- 1.22.0
- 1.21.4
- 1.21.3
- 1.21.1
- 1.12.0
- 1.11.2
- 1.11.1
- 1.11.0
- 1.10.1
- 1.10.0
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.1
- 1.5.0
- 1.4.0
- 1.3.9
- 1.3.8
- 1.3.7
- 1.3.6
- 1.3.5
- 1.3.4
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.0.2
- 0.0.1
- dev-update-deps
This package is auto-updated.
Last update: 2024-09-22 10:13:28 UTC
README
当源代码更改时自动重新运行PHPUnit测试
如果每次修改代码时都能自动重新运行PHPUnit测试,那岂不是很好?这个包正是为此而设计的。
安装此包后,您可以这样做
phpunit-watcher watch
以下是它看起来像什么
这将运行测试,并且每当app
、src
或tests
目录中的文件被修改时,都会重新运行测试。
想要传递一些参数给PHPUnit吗?没问题,只需附加即可
phpunit-watcher watch --filter=it_can_run_a_single_test
在2017年Laracon EU的精彩演讲中,Amo Chohan 展示了我们的phpunit-watcher的实际应用。
支持我们
我们在创建顶级开源包上投入了大量资源。您可以通过购买我们的付费产品之一来支持我们。
我们非常感激您从家乡寄给我们明信片,提及您正在使用我们的哪个包。您可以在我们的联系页面上找到我们的地址。我们将发布所有收到的明信片在我们的虚拟明信片墙上。
安装
您可以通过以下方式全局安装此包
composer global require spatie/phpunit-watcher
之后,您可以在系统上的任何目录中运行phpunit-watcher watch
。
或者,您可以将包作为项目的dev依赖项本地安装
composer require spatie/phpunit-watcher --dev
本地安装后,您可以使用vendor/bin/phpunit-watcher watch
运行它
用法
所有示例都假设您已全局安装了包。如果您选择本地安装,请在每个提到phpunit-watcher
的地方添加vendor/bin/
。
您可以使用以下命令启动监视器
phpunit-watcher watch
这将运行测试,并且每当src
或tests
目录中的文件被修改时,都会重新运行测试。
想要传递一些参数给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-watcher
时必须提供PHPUnit的任何参数。
自定义
工具的行为的某些方面可以进行修改。选项文件可以命名为.phpunit-watcher.yml
、phpunit-watcher.yml
或phpunit-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
初始参数
如果您想在 watcher 启动时每次都传递相同的参数给 PHPUnit,您可以在 .phpunit-watcher.yml
配置文件中指定这些参数。以下是一个示例
phpunit: arguments: '--stop-on-failure'
当使用某些参数启动工具时(例如,phpunit-watcher watch --filter=my_favourite_test
),将使用这些参数而不是配置文件中指定的参数。
变更日志
有关最近更改的详细信息,请参阅 CHANGELOG。
测试
composer test
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全
如果您发现有关安全的错误,请通过电子邮件发送至 [email protected],而不是使用问题跟踪器。
明信片软件
您可以使用此软件包(它是 MIT 许可的),但如果您经常使用它,我们非常欢迎您从家乡寄给我们一张明信片,并说明您正在使用我们的哪个软件包。
我们的地址是:Spatie,Kruikstraat 22,2018 安特卫普,比利时。
我们将所有收到的明信片 发布在我们的公司网站上。
鸣谢
我们在阅读 这篇优秀的文章 后开始创建这个软件包,作者是 Christopher Pitt。
交互式命令受到 Jest 的启发。
许可
MIT 许可证(MIT)。有关更多信息,请参阅 许可文件。