PHPStorm,对当前类进行单元测试


PHPStorm, unit testing the current class

我正在尝试从 NetBeans 迁移到 PHPStorm,但我无法弄清楚的是:如何在不为每个类单独创建运行配置的情况下为当前类(可能是(运行我的测试套件?

在 NetBeans 中,您可以使用 Alt+F6 运行整个套件,也可以仅使用 F6 运行当前类。这使您能够只运行所需的测试,而不是一直运行整个套件,这显然可以节省时间。

如果不为项目中的每个类创建新的运行配置,我就无法弄清楚如何在 PHPStorm 中执行此操作,而我显然不想这样做。

首先,你必须告诉 PHPStorm 你在哪里存储你的测试:

  1. 设置->目录将测试文件夹标记为测试
  2. 配置设置->PHP->PHPUnit
  3. 右键单击测试目录中的任何测试,然后选择"运行",它将动态为此特定测试文件创建测试配置。

您甚至可以右键单击单个测试方法并选择"运行"(或调试(,对于任何测试文件夹(如果您有嵌套的测试目录(都相同。

这个线程对我帮助很大,我很感谢 Jakub 的回答,但我不得不做额外的挖掘,所以我想我会尝试更进一步:

  1. 目录>的文件>设置

    • 选择任何包含测试的目录(也许您的项目根/测试(,然后单击标记为:测试
    • 请注意,如果您有多个包含测试的目录,并且选择将包括子目录,因此没有担心。
  2. >>语言和框架> PHP 的文件设置

    • 确保您的 php 语言级别和 CLI 解释器设置正确
  3. 文件>设置>语言和框架>PHP>PHPUnit

    • 假设您使用作曲家选择使用作曲家自动加载器并将路径设置为 yourprojectroot/vendor/autoload.php

    • 或者您可以选择 phpunit.phar 的路径并导航到 vendor/bin/phpunit ,然后选中默认引导程序文件旁边的框,并将其设置为vendor/autoload.php

  4. 在编辑器中打开任何 phpunit 测试文件,然后按 CtrlShiftF10 运行它

    • 不确定 mac 的密钥绑定,但如果您单击运行>运行... 这也将起作用,它会告诉您子菜单中的键绑定

其他提示:自从发布此内容并使用该功能以来,我学到了一些更有用的东西,并认为我会将它们添加到此处:

  • 在项目文件资源管理器中,如果选择任何测试目录或测试文件并执行 Ctrl移位F10 它将运行该文件或目录中的所有测试文件。

  • 班次 F10 - 将重新运行您运行的任何测试最后,如果您正在执行TDD并且之前执行了测试并且您正在正在测试的类中工作,您可以进行更改,并且只需在每次更改后按 Shift F10 即可重新运行之前运行的测试,无需选择要重新运行的测试它。