Eu criei um módulo no Magento 2 e agora estou tentando enviá-lo no Magento Marketplace. Minha extensão passou das análises de negócios e análise técnica, mas estou enfrentando problemas com a análise de controle de qualidade.
Recebi um e-mail do mercado Magento informando que havia duplicação de código em minha extensão. Abaixo está a amostra do correio.
Problemas de qualidade do código: CPD: esta extensão contém código duplicado.
Quando fui ao meu produto na conta do Marketplace e verifiquei o relatório técnico, encontrei abaixo.
Duplicatas de código detectadas
Esta extensão contém código que é copiado diretamente da base de código Magento. Isso viola as Seções 3.1 e 9.1b do Contrato de desenvolvedor Magento.
File: vendor/module/vendor-module-1.0.0.0/Block/Adminhtml/Module/Edit/Tab/Stores.php
Line: 58
File: magento/module-checkout-agreements/magento-module-checkout-agreements-100.0.6.0/Block/Adminhtml/Agreement/Edit/Form.php
Line: 122
File: magento/module-cms/magento-module-cms-100.0.7.0/Block/Adminhtml/Block/Edit/Form.php
Line: 100
File: vendor/module/vendor-module-1.0.0.0/Block/Adminhtml/Module/Renderer/Files.php
Line: 49
File: magento/framework/magento-framework-100.0.16.0/Data/Form/Element/Image.php
Line: 86
File: vendor/module/vendor-module-1.0.0.0/Model/ResourceModel/AbstractCollection.php
Line: 2
File: magento/module-cms/magento-module-cms-100.0.7.0/Model/ResourceModel/AbstractCollection.php
Line: 6
Existe alguma maneira de verificar a duplicação de código na minha instalação para evitar esse problema nas minhas outras extensões?
fonte
Aqui está uma descrição para o comando Magento 2 usado para verificar a duplicação de código.
O comando para verificar a duplicação de código / copiar e colar está abaixo.
Este comando irá primeiro para a
dev/tests/static
pasta. Aqui você pode ver o arquivo de declaração phpunit.xml.dist para este conjunto de testes.Neste arquivo, você encontrará o código acima, que definirá o arquivo a ser executado para diferentes testes de código.
Para diminuir, você pode ver
PHP Coding Standard Verification
testsuite
Isso executará o arquivo testsuite / Magento / Test / Php / LiveCodeTest.phpAo abrir esse arquivo, você encontrará diferentes funções para verificar os diferentes tipos de problemas de código. A função que será executada é
testCopyPaste
Aqui, você encontrará um código que será usado para colocar na lista negra qualquer arquivo / pasta dessa verificação de código.
Esta
foreach
função irá procurar por qualquer.txt
arquivo adicionado no local dev / tests / static / testsuite / Magento / Test / Php / _files / phpcpd / blacklist . Ele lerá o arquivo e ignorará todas as pastas a serem excluídas do processo de detecção de código de colar e copiar.Depois de adicionar todos os arquivos / pastas da lista negra ao código, ele será executado abaixo do código.
Este código executará a
run
função do arquivo dev / tests / static / framework / Magento / TestFramework / CodingStandard / Tool / CopyPasteDetector.php .Aqui, o código adiciona todas as
blacklisted
pastas / arquivos na--exclude
lista.Depois disso, ele executará o
vendor/bin/phpcpd
comando.Aqui no próprio comando Magento tem
excluiu todos os
Test
arquivos por códigoEle também pulou todas as duplicatas de código com menos de 13 linhas por código
A saída para esta execução de comando será adicionada ao arquivo definido na
testCopyPaste
função O nome do arquivo para a detecção de copiar e colar é phpcpd_report.xml, localizado no local dev / tests / static / report .Após a execução bem-sucedida do comando, a saída será adicionada aos arquivos de relatório.
fonte