peridot-php / peridot-watcher-plugin
监视测试更改并重新运行它们
1.3.2
2017-08-16 22:01 UTC
Requires
- php: >=5.4
- henrikbjorn/lurker: ^1
- peridot-php/peridot: ^1
- symfony/process: ^2|^3
This package is not auto-updated.
Last update: 2024-09-14 16:06:56 UTC
README
监视Peridot测试的更改,并在更改发生时重新运行它们。
用法
我们建议通过composer将此插件安装到项目中
$ composer require --dev peridot-php/peridot-watcher-plugin:~1.3
您可以通过您的peridot.php文件注册插件。
<?php use Evenement\EventEmitterInterface; use Peridot\Plugin\Watcher\WatcherPlugin; return function(EventEmitterInterface $emitter) { $watcher = new WatcherPlugin($emitter); };
注册插件将使Peridot应用程序可用--watch
选项
vendor/bin/peridot specs/ --watch
文件事件
默认情况下,监视插件将查找“文件更改”事件,但您可以配置插件以监听以下事件
- WatcherInterface::CREATE_EVENT
- WatcherInterface::MODIFY_EVENT
- WatcherInterface::DELETE_EVENT
- WatcherInterface::ALL_EVENT
<?php use Evenement\EventEmitterInterface; use Peridot\Plugin\Watcher\WatcherPlugin; use Peridot\Plugin\Watcher\WatcherInterface; return function(EventEmitterInterface $emitter) { $watcher = new WatcherPlugin($emitter); $watcher->setEvents([WatcherInterface::CREATE_EVENT, WatcherInterface::MODIFY_EVENT]); };
跟踪额外路径
默认情况下,监视插件仅监视测试路径。如果您想跟踪其他路径,可以在您的peridot.php文件中这样做
<?php use Evenement\EventEmitterInterface; use Peridot\Plugin\Watcher\WatcherPlugin; return function(EventEmitterInterface $emitter) { $watcher = new WatcherPlugin($emitter); $watcher->track(__DIR__ . '/src'); };
文件标准
默认情况下,监视器将查找以.php结尾的文件中的更改。如果您想跟踪其他文件类型,可以在您的peridot.php文件中添加正则表达式作为标准
<?php use Evenement\EventEmitterInterface; use Peridot\Plugin\Watcher\WatcherPlugin; return function(EventEmitterInterface $emitter) { $watcher = new WatcherPlugin($emitter); $watcher->track(__DIR__ . '/src'); $watcher->addFileCriteria('/\.js$/'); };
使用上述方法,当源文件更改时,您可以重新运行您的测试。由于Peridot监视器在子进程中重新运行您的测试,它实际上会检测到您源中的新更改。
示例规范
请随意使用监视选项玩示例规范
$ vendor/bin/peridot -c example/peridot.php example/modifyme.spec.php --watch
运行插件测试
$ vendor/bin/peridot specs/
Inotify支持
如果可用,监视插件将利用Inotify扩展,否则它将使用递归目录策略来监视更改。
关于IDE的说明
某些IDE可能无法处理来自监视进程的ANSI序列。PHPStorm不会渲染子进程输出的颜色,但大多数终端会。如果您必须使用IDE中的终端,您可能想使用--no-colors
选项运行测试。