peridot-php/peridot-watcher-plugin

监视测试更改并重新运行它们

1.3.2 2017-08-16 22:01 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:06:56 UTC


README

Build Status HHVM Status

监视Peridot测试的更改,并在更改发生时重新运行它们。

Peridot watcher

用法

我们建议通过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选项运行测试。