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

时间:2017-03-07 11:38:46

标签: phpunit phpstorm phpstorm-2016.3

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

我喜欢这种检查,并且不想为所有文件关闭它。我想要为phpunit测试关闭它,但在我的所有测试中添加noinspection注释都很烦人且重复。

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

1 :请参阅Sebastian对this github issue的评论。

  

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

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

1 个答案:

答案 0 :(得分:5)

忽略名为dynamic"的静态方法。测试中的错误,您可以定义范围,然后更改 对该范围的检查。

设置名称等适用于PhpStorm 2016.3。

范围

您可以使用默认的Test范围,将测试目录设置为"测试源root"。您也可以创建自己的范围(见下文)

检查

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

  1. 转到设置 - >编辑 - >检查(或检查检查)
  2. 搜索(在检查中,而不是在所有设置中)静态方法称为动态'检查
  3. 扩展范围(默认情况下,在所有范围内''),然后选择新范围"除了phpunit测试以外的所有"
  4. 检查测试范围
  5. 取消选择警告,但保留所有范围'地选择。
  6. 如果您使用排除项为项目创建了特定范围,则还可以在此处仅选择该范围。

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

    看起来像这样:

    settings example for phpstorm

    创建自己的范围

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