如何在测试中忽略`静态方法称为动态`检查

Nan*_*nne 4 phpunit phpstorm phpstorm-2016.3

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

我喜欢这个检查,不想为所有文件关闭它.我确实希望将其关闭以进行phpunit测试,但noinspection在我的所有测试中添加注释都很烦人且重复.

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


1:看看塞巴斯蒂安对这个github问题的评论.

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

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

Nan*_*nne 5

要忽略测试中的"静态方法称为动态"错误,可以定义范围,然后更改该范围的检查.

设置名称等适用于PhpStorm 2016.3.

范围

您可以使用默认Test范围,将tests目录设置为"test sources root".您也可以创建自己的范围(见下文)

检查

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

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

如果已使用排除项为项目创建了特定范围,则还可以在此处仅选择该范围.

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

它看起来像这样:

phpstorm的设置示例

创建自己的范围

  1. 转到设置 - >外观和行为 - >范围(您还可以在设置搜索中搜索"范围").
  2. 按'+'添加新范围
  3. 选择你的目录
  4. 应用/确定