He creado un módulo en Magento 2 y ahora estoy tratando de enviarlo en Magento Marketplace. Mi extensión ha pasado de la revisión comercial y la revisión técnica, pero tengo problemas con la revisión de control de calidad.
Recibí un correo del mercado de Magento que decía que tenía duplicación de código en mi extensión. A continuación se muestra la muestra del correo.
Problemas de calidad del código: CPD: esta extensión contiene código duplicado.
Cuando fui a mi producto en la cuenta de Marketplace y revisé el informe técnico, lo encontré a continuación.
Duplicados de código detectados
Esta extensión contiene código que se copia directamente de la base de código de Magento. Esto constituye una violación directa de las Secciones 3.1 y 9.1b del Acuerdo de desarrollador de 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
¿Hay alguna forma de verificar la duplicación de código en mi configuración para evitar este problema en mis otras extensiones?
fuente

Aquí hay una descripción del comando Magento 2 utilizado para verificar la duplicación de código.
El comando para verificar la duplicación de código / copiar y pegar está debajo.
Este comando primero irá a la
dev/tests/staticcarpeta. Aquí puede ver el archivo de declaración phpunit.xml.dist para este conjunto de pruebas.En este archivo, encontrará el código anterior que definirá qué archivo ejecutar para diferentes pruebas de código.
Para reducir, puede ver
PHP Coding Standard VerificationtestsuiteEsto ejecutará el archivo testsuite / Magento / Test / Php / LiveCodeTest.phpCuando abra este archivo, encontrará diferentes funciones para verificar los diferentes tipos de problemas de código. La función que se ejecutará es
testCopyPasteAquí, encontrará un código que se utilizará para poner en la lista negra cualquier archivo / carpeta de esta verificación de código.
Esta
foreachfunción verificará cualquier.txtarchivo agregado en dev / tests / static / testsuite / Magento / Test / Php / _files / phpcpd / blacklist location. Leerá el archivo e ignorará todas las carpetas para excluirlas del proceso de detección de código de copiar y pegar.Después de agregar todos los archivos / carpetas de la lista negra al código, se ejecutará debajo del código.
Este código ejecutará la
runfunción del archivo dev / tests / static / framework / Magento / TestFramework / CodingStandard / Tool / CopyPasteDetector.php .Aquí, el código agrega todas las
blacklistedcarpetas / archivos en la--excludelista.Después de eso se ejecutará el
vendor/bin/phpcpdcomando.Aquí en el comando en sí Magento tiene
excluyó todos los
Testarchivos por códigoTambién se ha omitido todos los duplicados de código que tienen menos de 13 líneas por código
La salida para la ejecución de este comando se agregará al archivo definido en la
testCopyPastefunción. El nombre de archivo para la detección de copiar y pegar es phpcpd_report.xml ubicado en la ubicación dev / tests / static / report .Después de la ejecución exitosa del comando, la salida se agregará a los archivos de informes.
fuente