【问题标题】:PHPMD and PHPCS Camelcase for Tests用于测试的 PHPMD 和 PHPCS Camelcase
【发布时间】:2017-10-20 03:53:37
【问题描述】:

我刚刚在我的项目中安装了 PHPMDPHPCS

现在,我想对它们进行一些自定义,但似乎无法实现。

我收到 2 条警告,我想为我的所有项目删除:

  • phpcs: 公共方法名MyTests::my_test_that_should_pass 不是驼峰大写格式
  • phpmd: 方法my_test_that_should_pass 不是骆驼式的

使用 PHPMD,我尝试更改:.composer/vendor/phpmd/phpmd/src/main/resources/rulesets/controversial.xml 并将 allow-underscore-test 设置为 true,就像提到的 here

使用 PHPCS,我真的不知道该怎么做。

有什么想法???

https://phpmd.org/rules/controversial.html

【问题讨论】:

    标签: phpmd phpcs


    【解决方案1】:

    PHPCS 使用一个名为 ruleset.xml 的文件来允许您创建自己的自定义标准。它的文档在这里:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Annotated-Ruleset

    如果您想要项目的特定标准,您可以在项目的根目录中包含一个 phpcs.xml 文件。它与 ruleset.xml 文件的格式完全相同,甚至可以指定默认情况下需要检查哪些文件和文件夹。相关文档在这里:https://github.com/squizlabs/PHP_CodeSniffer/wiki/Advanced-Usage#using-a-default-configuration-file

    我不知道您现在在 PHPCS 中使用什么编码标准,但我假设您使用的是 PSR2。

    如果您使用-s 选项运行phpcs,您将看到带有错误代码的错误消息,如下所示:Method name "MyTests::my_test_that_should_pass" is not in camel caps format (PSR1.Methods.CamelCapsMethodName.NotCamelCaps)。代码就是你需要的代码。

    对于您的自定义标准,您需要 PSR2,但您不想要 PSR1.Methods.CamelCapsMethodName 嗅探,因为您显然不希望 PHPCS 检查骆驼大小写。所以用这个内容创建一个规则集:

    <?xml version="1.0"?>
    <ruleset name="MyStandard">
        <description>My custom coding standard.</description>
        <rule ref="PSR2">
            <exclude name="PSR1.Methods.CamelCapsMethodName"/>
        </rule>
    </ruleset>
    

    保存该文件并将其命名为 ruleset.xmlphpcs.xml,然后使用它运行 PHPCS:phpcs /path/to/code --standard=/path/to/ruleset.xml

    查看我在评论顶部链接的带注释的规则集文档,因为您可以使用这些规则集做更多事情。

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      相关资源
      最近更新 更多