什么是静态测试检查?


8

构建模块后,我尝试运行bin/magento dev:tests:run static
这报告了我的代码的一些问题,但是我不确定在运行此测试时究竟要检查什么。
官方文件说

静态代码分析检查PHP代码是否符合Magento 2编码标准和最佳实践。它们通常在使用bin / magento工具进行持续集成期间执行。

但这并不意味着什么。
到目前为止,我发现的是。

  • 存在 composer.json
  • 存在 README.md
  • 存在 licence.txt
  • 构造函数参数的顺序与参数的父顺序匹配。

还有什么?



@AnkitShah您能指出我所链接页面中的确切段落吗,该段落指出了静态测试的作用?
马吕斯

Answers:


6

bin/magento dev:tests:run static 会跑:

  • 较少的静态代码分析:Generic.Files.EndFileNewline,Generic.Files.LineEndings,Generic.WhiteSpace.DisallowTabIndent,Squiz.CSS.NamedColours
  • Javascript静态代码分析:eslint,jshint
  • PHP编码标准验证:
    1. 根据黑名单和git更改的文件返回白名单
    2. 在代码上运行PSR2代码嗅探
    3. 在代码上运行Magento特定的编码标准
    4. 在代码上运行注释嗅探
    5. 在代码上运行混乱检测器
    6. 在代码上运行复制粘贴检测器
  • 代码完整性测试:
    1. 构建模块依赖性
    2. 强制执行composer.lock的测试是最新的composer.json
    3. 强制composer.json文件和Magento组件中任何其他约定有效性的测试
    4. Hhvm兼容性测试
  • Xss不安全输出测试:
    1. / * @noEscape * /在输出之前。输出不需要转义。测试是绿色的。
    2. / * @escapeNotVerified * /在输出之前。未检查输出转义,并且应验证*。测试是绿色的。
    3. 名称中包含“ html”的方法(例如echo $ object-> {suffix} Html {postfix}())。*数据已准备好用于HTML输出。测试是绿色的。
    4. 允许使用AbstractBlock方法escapeHtml,escapeUrl,escapeQuote,escapeXssInUrl。测试是绿色的。
    5. 允许类型转换和php函数count()*(例如echo(int)$ var,echo(float)$ var,echo(bool)$ var,echo count($ var))。测试是绿色的。
    6. 输出单引号(例如,回显“某些文本”)。测试是绿色的。
    7. 输出不带变量的双引号(例如,回显“某些文本”)。测试是绿色的。
    8. 第1-7页的其他。输出不会转义。测试是红色的。

资料来源:dev / tests / static / phpunit.xml.dist


您能为每一个加上几句话吗?也许没有通过特定测试的示例?
马里斯(Marius)

@Marius我刚刚为每个单词都添加了一些单词(我从核心全部学习了这些单词),希望这会有所帮助。
乔纳森·里巴斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.