【问题标题】:Run unit test when saving file in PhpStorm在 PhpStorm 中保存文件时运行单元测试
【发布时间】:2012-12-27 10:55:20
【问题描述】:

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

【问题讨论】:

  • PhpStorm 没有这种能力(在保存文件时执行某些操作)。您可以 try 录制 macro 到 1) 保存文件和 2) 运行单元测试 .. 然后为其分配一些快捷方式并使用它而不是保存(显然,如果文件自动保存,此宏不涉及)。除此之外——寻找一些可以对文件修改执行特定操作的外部文件观察器。 P.S. 这是要求类似功能的票:youtrack.jetbrains.com/issue/IDEA-85791
  • 感谢@LazyOne 非常明确的回答。非常感谢!

标签: php unit-testing automation phpunit phpstorm


【解决方案1】:

从版本 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$

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

【讨论】:

  • 抱歉回复晚了,但这是很棒的信息!我已经升级了 :) 非常感谢 Leigh 回到这个问题
  • 很好的答案!只需按照上面的步骤操作,我就成功了。不过,PHPStorm 7 的设置发生了一些变化,所以这里有一张图片,其中包含我用来使其工作的详细信息:link to GDocs。我还在 PHPStorm 设置中创建了自己的范围,其中包含了我想要“监视”的文件
  • 你可以使用 phpunit 的 --filter 选项来简化你的配置并且只有 1 个观察者。只需将 Arguments 设置更改为 --filter $FileNameWithoutExtension$,无论您是编辑文件还是单元测试,它都会执行测试。
  • 不错的提示,谢谢@StuartGrimshaw。有一天我将不得不重新访问并编辑它。
【解决方案2】:

PHPUnit watcher 命名为 hot phpunit runner

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

【讨论】:

    【解决方案3】:

    你也可以看看TDDRunner

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

    /usr/bin/tddrunner --group=test
    

    有一个German article 提供更多详细信息。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2016-05-19
        • 2014-02-20
        • 2014-11-16
        • 1970-01-01
        • 2015-09-19
        • 1970-01-01
        • 2018-08-11
        • 2012-11-28
        • 1970-01-01
        相关资源
        最近更新 更多