4

PHPUnit 将所有断言定义为静态函数,但您应该使用对象上下文1调用它们。除了这是否是一个好的做法之外,如果你想遵循这种做法,你会在 PhpStorm 中收到警告: static method called as dynamic

我喜欢这种检查,不想对所有文件都关闭它。我确实想为 phpunit 测试关闭它,但是noinspection在我的所有测试中添加评论是烦人且重复的。

如何在测试中忽略这一点,但在我的正常代码中进行此检查?
我正在使用 PhpStorm 2016.3


1:见 Sebastian 对此github 问题的评论。

PHPUnit 的普通用户应该使用 $this-> 而不是 self::

此外,手册中的所有示例都使用此方法。

4

1 回答 1

5

要在测试中忽略“称为动态的静态方法”错误,您可以定义一个范围,然后更改该范围的检查。

设置名称等适用于 PhpStorm 2016.3。

范围

Test您可以通过将测试目录设置为“测试源根目录”来使用默认范围。您还可以创建自己的范围(见下文)

检查

现在让您的检查仅适用于此范围

  1. 转到设置 -> 编辑器 -> 检查(或搜索检查)
  2. 搜索(在检查中,而不是在所有设置中)“称为动态的静态方法”检查
  3. 展开范围(默认为“在所有范围内”),然后选择您的新范围“除了 phpunit 测试之外的所有测试”
  4. 检查测试范围
  5. 取消选择警告,但保持选中“所有范围”。

如果您已为您的项目创建了具有排除项的特定范围,您也可以在此处仅选择该范围。

您可能需要重新启动 phpstorm 或重新运行检查。

它看起来像这样:

phpstorm 的设置示例

创建自己的范围

  1. 转到设置 -> 外观和行为 -> 范围(您也可以在设置搜索中搜索“范围”)。
  2. 按“+”添加新范围
  3. 选择您的目录
  4. 申请/确定
于 2017-03-07T11:38:46.187 回答