17

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

4

4 回答 4

26

从版本 6 开始,PHPStorm 具有“文件观察器”

  • 打开您的项目首选项。
  • 从左侧选项列表中选择 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$

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

于 2013-03-22T09:32:27.267 回答
2

PHPUnit watcher 被命名为 hot phpunit runner

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

于 2013-09-25T09:03:44.673 回答
1

你也可以看看TDDRunner

它是在文件更改时自动执行 PHPUnit 的控制台工具。您还可以通过仅执行一个文件或其他任何文件来配置 PHPUnit。

/usr/bin/tddrunner --group=test

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

于 2013-05-16T19:01:35.513 回答
0

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

https://blog.jetbrains.com/phpstorm/2017/07/autorun-phpunit-tests-in-phpstorm-2017-2/

于 2021-07-21T09:51:15.343 回答