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/static
carpeta. 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 Verification
testsuite
Esto 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
testCopyPaste
Aquí, encontrará un código que se utilizará para poner en la lista negra cualquier archivo / carpeta de esta verificación de código.
Esta
foreach
función verificará cualquier.txt
archivo 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
run
función del archivo dev / tests / static / framework / Magento / TestFramework / CodingStandard / Tool / CopyPasteDetector.php .Aquí, el código agrega todas las
blacklisted
carpetas / archivos en la--exclude
lista.Después de eso se ejecutará el
vendor/bin/phpcpd
comando.Aquí en el comando en sí Magento tiene
excluyó todos los
Test
archivos 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
testCopyPaste
funció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