在更改时运行PHPUnit测试

Jer*_*auw 15 php testing phpunit gruntjs

每当文件在磁盘上发生变化时,我都想运行我的PHPUnit测试(或者至少是它们的一部分).非常类似于" grunt watch "所能做的.我有一个项目,我有JS和PHP,并使用Grunt.在那里我向PHPUnit发出请求,让它在我使用grunt watch的JS测试之上运行.虽然这样做很好,但在仅PHP项目中执行此操作似乎非常麻烦.我需要引入grunt,并在节点上添加依赖项.另外,我有很多这样的PHP项目.因此,更简单的解决方案是有序的.

Eri*_*ulz 9

你可以使用watch非常甜的节点:

运行npm init以设置包(需要一分钟),然后

package.json

然后编辑您的watch文件以包含这两个条目:

npm init

然后触发观看:

package.json

(归功于这篇有趣的文章)


edo*_*ian 5

我前段时间写了一篇博文:http://edorian.github.io/2010-03-11-running-your-unit-tests-everytime-you-save-a-file/

最基本的命令是:

pywatch phpunit .
Run Code Online (Sandbox Code Playgroud)

这意味着"监视此目录中的所有文件以及下面的更改,如果其中一个更改运行PHPUnit ".

如果你有很多文件(资产等)可能会变慢,所以更好/更快的版本是:

find -name '*.php' | xargs pywatch "./runSuite.sh"
Run Code Online (Sandbox Code Playgroud)

它只监视.php文件的更改


LCB*_*LCB 5

也许你可以尝试一下phpunit-watcherhttps://packagist.org/packages/spatie/phpunit-watcher

首先,使用 进行安装phpunit-watchercomposer require spatie/phpunit-watcher --dev然后修改来在属性composer.json中添加一项:scripts

{
    "scripts" : {
        "test" : "./vendor/bin/phpunit-watcher watch --bootstrap vendor/autoload.php tests/"
    }
}
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下命令运行测试用例composer test

有时,您应该运行composer run test --timeout=0,否则进程将在 300 秒后被终止。


Ant*_*ing 1

您可以使用inotifywait,请参阅https://speakerdeck.com/rowan_m/building-better-developers-2?slide=31了解 PHPUnit 示例。