如果每当您更改某些代码时 PHPUnit 测试都会自动重新运行,那不是很好吗?这个包正是可以做到这一点。
安装软件包后,您可以执行以下操作:
phpunit-watcher watch
它看起来是这样的:
这将运行测试,并在app
、 src
或tests
目录中的文件被修改时重新运行它们。
想要向 PHPUnit 传递一些参数?没问题,只需将它们粘上即可:
phpunit-watcher watch --filter=it_can_run_a_single_test
Amo Chohan 在 Laracon EU 2017 的精彩演讲中展示了我们的 phpunit-watcher 的实际应用。
我们投入了大量资源来创建一流的开源包。您可以通过购买我们的一款付费产品来支持我们。
我们非常感谢您从家乡寄给我们一张明信片,并注明您正在使用我们的哪种套餐。您可以在我们的联系页面上找到我们的地址。我们在虚拟明信片墙上发布所有收到的明信片。
您可以像这样全局安装这个包
composer global require spatie/phpunit-watcher
之后phpunit-watcher watch
可以在系统上的任何目录中运行。
或者,您可以在本地安装该包作为项目中的开发依赖项
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
默认情况下,该工具使用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
详细信息请参阅贡献。
如果您发现有关安全的错误,请发送邮件至 [email protected],而不是使用问题跟踪器。
您可以自由使用这个软件包(它是麻省理工学院许可的),但如果您经常使用它,我们非常感谢您从您的家乡给我们寄一张明信片,注明您正在使用我们的哪个软件包。
我们的地址是:Spatie, Kruikstraat 22, 2018 安特卫普, 比利时。
我们在公司网站上发布所有收到的明信片。
在阅读 Christoper Pitt 的这篇优秀文章后,我们开始创建这个包
交互式命令的灵感来自 Jest。
麻省理工学院许可证 (MIT)。请参阅许可证文件以获取更多信息。