J'ai créé un module dans Magento 2 et maintenant j'essaye de le soumettre sur Magento Marketplace. Mon extension est passée de l'examen des activités et de l'examen technique, mais je rencontre des problèmes avec l'examen de l'assurance qualité.
J'ai reçu un courrier du marché Magento indiquant que j'avais une duplication de code dans mon extension. Vous trouverez ci-dessous l'exemple du courrier.
Problèmes de qualité du code: CPD: cette extension contient du code dupliqué.
Lorsque je suis allé sur mon produit sur le compte Marketplace et que j'ai vérifié le rapport technique, j'ai trouvé ci-dessous.
Doublons de code détectés
Cette extension contient du code qui est directement copié à partir de la base de code Magento. Ceci est en violation directe des sections 3.1 et 9.1b de l'accord de développeur 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-t-il un moyen de vérifier la duplication de code sur ma configuration pour éviter ce problème pour mes autres extensions?
la source
Voici une description de la commande Magento 2 utilisée pour vérifier la duplication de code.
La commande pour vérifier la duplication / copier-coller du code est ci-dessous.
Cette commande ira d'abord dans le
dev/tests/static
dossier. Ici vous pouvez voir le fichier de déclaration phpunit.xml.dist pour cette suite de tests.Dans ce fichier, vous trouverez ci-dessus le code qui définira quel fichier exécuter pour différents tests de code.
Pour affiner, vous pouvez voir
PHP Coding Standard Verification
testsuite
Cela exécutera le fichier testsuite / Magento / Test / Php / LiveCodeTest.phpLorsque vous ouvrez ce fichier, vous trouverez différentes fonctions pour vérifier les différents types de problèmes de code. La fonction qui sera exécutée est
testCopyPaste
Ici, vous trouverez un code qui sera utilisé pour mettre sur liste noire tous les fichiers / dossiers de cette vérification de code.
Cette
foreach
fonction vérifiera tout.txt
fichier ajouté dans dev / tests / static / testsuite / Magento / Test / Php / _files / phpcpd / blacklist . Il lira le fichier et ignorera tous les dossiers à exclure du processus de détection du code copier-coller.Après avoir ajouté tous les fichiers / dossiers de la liste noire au code, il s'exécutera sous le code.
Ce code exécutera la
run
fonction du fichier dev / tests / static / framework / Magento / TestFramework / CodingStandard / Tool / CopyPasteDetector.php .Ici, le code ajoute tous les
blacklisted
dossiers / fichiers de la--exclude
liste.Après cela, il exécutera la
vendor/bin/phpcpd
commande.Ici, dans la commande elle-même, Magento a
exclu tous les
Test
fichiers par codeIl a également ignoré tous les doublons de code de moins de 13 lignes par code.
La sortie de cette exécution de commande sera ajoutée au fichier défini dans la
testCopyPaste
fonction. Le nom de fichier pour la détection de copier-coller est phpcpd_report.xml situé à l'emplacement dev / tests / static / report .Après l'exécution réussie de la commande, la sortie sera ajoutée aux fichiers de rapport.
la source