【问题标题】:PHPStorm, unit testing the current classPHPStorm,单元测试当前类
【发布时间】:2015-02-04 17:18:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: php unit-testing phpunit phpstorm


    【解决方案1】:

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

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

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

    【讨论】:

    • 是的,我知道这一点,这里的关键是创建一个运行配置(比如“PHPUnit 当前类”)并让我能够为树中的任何类运行它。那么,用一个运行配置测试任何类?
    • 我认为这不可能。 PHPStorm 只是为方法/文件/文件夹创建动态运行配置,并使用该配置运行 PHPUnit。请注意,它只保留 5 个最后的配置,因此不会造成很大的混乱。
    • 我明白了。所以,工作流程是我运行一次测试,它创建(临时)运行配置,我可以用 F6 调用它直到满意?好的,现在看起来很合理我知道运行配置是临时的,没有注意到它说“保存配置”。谢谢。
    【解决方案2】:

    这个帖子对我帮助很大,我很感谢Jakub's answer,但是我不得不做额外的挖掘,所以我想我会尝试更进一步:

    1. 文件 > 设置 > 目录

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

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

      • 假设您使用 composer 选择 use Composer autoloader 并将路径设置为 yourprojectroot/vendor/autoload.php

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

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

      • 不确定 mac 的键绑定,但如果您单击运行 > 运行... 也可以,它会告诉您子菜单中的键绑定

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

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

    • ShiftF10 - 将重新运行您运行的任何测试 最后,所以如果您正在执行 TDD 并且之前执行过测试并且 你正在被测试的班级工作 你可以做出改变并且 每次更改后只需按 ShiftF10 即可 重新运行之前运行的测试,无需选择重新运行的测试 它。

    【讨论】:

      猜你喜欢
      • 2020-01-01
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 2012-12-15
      • 2014-03-15
      • 2010-10-17
      • 1970-01-01
      • 2014-02-20
      相关资源
      最近更新 更多