在PhpStorm中保存文件时运行单元测试


Run unit test when saving file in PhpStorm

我已经用PHPUnit设置了PhpStorm 5,我很好奇PhpStorm是否有一些功能可以在保存文件时自动运行单元测试。就像看门人和守卫。我试着搜索我们心爱的www和PhpStorm文档,但还没能找到一个解决方案。

从版本6开始,PHPStorm有了"File Watchers"

  • 打开您的项目首选项
  • 从左侧的选项列表中选择File Watchers
  • 点击右侧空白面板底部的+符号。
  • 选择<custom>

您必须为PHPUnit设置一个命令行,它不会是集成测试,但您可以将错误输出到控制台(这是一个好的开始!)

您可以使用各种宏选项,因此您可以在传递给命令行的参数中包含(例如)$FileNameWithoutExtension$Test.php

我个人不得不设置两个观察者。第一个检测到对项目文件的修改,第二个检测到对测试文件的更改(第二个没有将Test.php附加到文件名),我还创建了一个新的项目范围,以从第一个监视程序中排除测试目录。

你可能还想关闭即时同步,因为这会导致PHPUnit在PHPStorm自动保存文件时运行。

我的其他设置如下:

  • 文件类型:PHP files (PHP)
  • 范围:Project excluding tests
  • 程序:/path/to/php 参数:/path/to/phpunit --configuration /path/to/phpunit.xml.dist /path/to/tests/$FileNameWithoutExtension$Test.php 工作目录:$FileDir$ 输出路径:$FileDir$

未设置输出过滤器,启用语法错误检查,并且控制台显示错误。

PHPUnit watchcher被命名为hot PHPUnit runner

https://github.com/slavahatnuke/hot-phpunit-runner

您还可以查看TDDRunner

是在文件更改时自动执行PHPUnit的控制台工具。你也可以通过只执行一个文件来配置PHPUnit。

/usr/bin/tddrunner --group=test

有一篇德文文章提供了更多的细节。

2017年,Jetbrains发布了一个允许自动运行测试的功能。它位于Run控制台中,因此它链接到运行设置,从而简化了此自动运行的设置。

看到https://blog.jetbrains.com/phpstorm/2017/07/autorun - phpunit) -测试- - phpstorm - 2017 2/