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

时间:2013-01-13 09:22:56

标签: php unit-testing automation phpunit phpstorm

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

4 个答案:

答案 0 :(得分:25)

从版本6开始,PHPStorm拥有“文件监视器”

  • 打开您的项目偏好。
  • 从左侧选项列表中选择文件监视器。
  • 单击空右侧面板底部的+符号。
  • 选择<custom>

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

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

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

您可能还想关闭立即同步,因为这会导致PHPPit在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$

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

答案 1 :(得分:2)

PHPUnit观察者被命名为热门phpunit runner

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

答案 2 :(得分:1)

您还可以查看TDDRunner

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

/usr/bin/tddrunner --group=test

有一个German article提供了进一步的细节。

答案 3 :(得分:0)

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

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