O que os testes estáticos estão verificando?

8

Depois de criar meu módulo, tentei executar bin/magento dev:tests:run static.
Isso relatou alguns problemas com meu código, mas não sei exatamente o que foi verificado ao executar esses testes.
A documentação oficial diz

A análise de código estático verifica se o código PHP segue os padrões de codificação Magento 2 e as melhores práticas. Eles geralmente são executados durante a integração contínua usando a ferramenta bin / magento.

Mas isso não significa muito.
O que eu encontrei até agora é.

  • presença de composer.json
  • presença de README.md
  • presença de licence.txt
  • a ordem dos argumentos do construtor corresponde à ordem dos argumentos pai.

O quê mais?

Marius
fonte
@AnkitShah Você pode me indicar o parágrafo exato da página que você vinculou, onde diz o que os testes estáticos fazem?
Marius

Respostas:

6

bin/magento dev:tests:run static correrá:

  • Análise de código menos estático: Generic.Files.EndFileNewline, Generic.Files.LineEndings, Generic.WhiteSpace.DisallowTabIndent, Squiz.CSS.NamedColours
  • Análise de código estático Javascript: eslint, jshint
  • Verificação padrão da codificação PHP:
    1. Retorna a lista de permissões com base na lista negra e nos arquivos alterados git
    2. Execute o código PSR2 fareja o código
    3. Execute os padrões de codificação específicos do Magento no código
    4. Execute as anotações cheira o código
    5. Executar detector de bagunça no código
    6. Execute o detector de copiar e colar no código
  • Testes de integridade de código:
    1. Construir dependências de módulos
    2. Um teste que aplica composer.lock está atualizado com composer.json
    3. Um teste que aplica a validade dos arquivos composer.json e quaisquer outras convenções nos componentes Magento
    4. Teste de compatibilidade Hhvm
  • Teste de Saída Insegura para Xss:
    1. / * @noEscape * / antes da saída. A saída não requer escape. O teste é verde.
    2. / * @escapeNotVerified * / antes da saída. O escape de saída não está marcado e * deve ser verificado. O teste é verde.
    3. Métodos que contêm "html" em seus nomes (por exemplo, echo $ object -> {suffix} Html {postfix} ()). * Os dados estão prontos para a saída HTML. O teste é verde.
    4. Os métodos AbstractBlock escapeHtml, escapeUrl, escapeQuote, escapeXssInUrl são permitidos. O teste é verde.
    5. A conversão de tipo e a função php count () são permitidas * (por exemplo, echo (int) $ var, echo (float) $ var, echo (bool) $ var, echo count ($ var)). O teste é verde.
    6. Saída entre aspas simples (por exemplo, eco 'algum texto'). O teste é verde.
    7. Saída entre aspas duplas sem variáveis ​​(por exemplo, echo "some text"). O teste é verde.
    8. Outro da p.1-7. A saída não é escapada. Teste é vermelho.

Fonte: dev / tests / static / phpunit.xml.dist

Jonathan Ribas
fonte
você pode adicionar algumas palavras sobre cada uma, por favor? Talvez um exemplo que não passe em um teste específico?
Marius
@ Marius Acabei de adicionar algumas palavras para cada uma (tirei todas elas do núcleo), espero que isso ajude.
Jonathan Ribas