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

3
我正在尝试从NetBeans迁移到PHPStorm,但我无法弄清楚的是:如何在不为每个类单独创建运行配置的情况下运行当前类的测试套件(无论是哪个类)?
在NetBeans中,您可以使用Alt + F6运行整个测试套件或仅使用F6运行当前类。这使您能够仅运行所需的测试,而不是每次都运行整个测试套件,这显然是一个时间节省者。
我无法弄清楚如何在PHPStorm中实现此目标,而不必为项目中的每个类创建新的运行配置,我显然不想这样做。
2个回答

4

首先,您需要告诉PHPStorm您存储测试的位置:

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

您甚至可以右键单击单个测试方法并选择“运行”(或调试), 对于任何测试文件夹也是如此(如果您有嵌套测试目录)。


是的,我知道这个,关键在于创建一个运行配置(比如“PHPUnit当前类”),并使其能够在我的树中的任何类上运行。因此,只需一个运行配置就可以测试任何类? - Dalibor Karlović
我认为这是不可能的。PHPStorm只是为方法/文件/文件夹创建即时运行配置,并使用该配置运行PHPUnit。请注意,它仅保留最近的5个配置,因此不会造成混乱。 - Jakub Filipczyk
我明白了。所以,我的工作流程是运行测试一次,它会创建一个(临时的)运行配置,然后我可以使用F6调用它,直到满意为止?好的,现在我知道运行配置是临时的了,没注意到它上面写着“保存配置”。谢谢。 - Dalibor Karlović

1
这篇帖子对我很有帮助,我非常感谢Jakub的答案,但是我还需要做更多的研究,所以我想尝试更深入地探讨一下:
  1. 文件 > 设置 > 目录

    • 选择包含测试的任何目录(例如你项目的根目录下的tests)并点击标记为:Tests
    • 请注意,如果您有多个包含测试的目录,则可以重复此步骤,并且选择将包括子目录,因此不用担心。
  2. 文件 > 设置 > 语言和框架 > PHP

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

    • 假设您正在使用composer,请选择使用Composer自动加载程序并设置路径为yourprojectroot/vendor/autoload.php

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

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

    • 如果您不确定Mac的键绑定,请单击运行 > 运行...,这也将起作用,并且它会在子菜单中告诉您键绑定

额外提示:自从发布这个功能并使用它后,我学到了更多有用的东西,所以想在这里添加一些:

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

  • ShiftF10 - 将重新运行上次运行的测试,因此,如果您正在进行 TDD 并先前执行了测试,并且您正在测试的类中工作,则可以进行更改并在每次更改后只需按下 ShiftF10,它会重新运行先前运行的测试,无需选择测试以重新运行它。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接