Ich habe ein Modul in Magento 2 erstellt und versuche es nun auf dem Magento Marketplace einzureichen. Meine Erweiterung wurde von der Geschäftsüberprüfung und der technischen Überprüfung abgelöst, aber ich habe Probleme mit der QS-Überprüfung.
Ich habe eine E-Mail vom Magento-Marktplatz erhalten, die besagt, dass meine Erweiterung Codeduplikationen enthält. Unten ist das Beispiel der Mail.
Probleme mit der Codequalität: CPD: Diese Erweiterung enthält doppelten Code.
Als ich im Marketplace-Konto zu meinem Produkt ging und den technischen Bericht überprüfte, stellte ich Folgendes fest.
Codeduplikate erkannt
Diese Erweiterung enthält Code, der direkt aus der Magento-Codebasis kopiert wird. Dies verstößt direkt gegen die Abschnitte 3.1 und 9.1b der Magento-Entwicklervereinbarung.
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
Kann ich in meinem Setup überprüfen, ob Code doppelt vorhanden ist, um dieses Problem bei meinen anderen Erweiterungen zu vermeiden?
quelle
Hier finden Sie eine Beschreibung des Magento 2-Befehls, mit dem die Codeduplizierung überprüft wird.
Der Befehl zum Überprüfen der Codeduplizierung / des Kopierens und Einfügens ist unten aufgeführt.
Dieser Befehl wechselt zuerst in den
dev/tests/static
Ordner. Hier sehen Sie die Deklarationsdatei phpunit.xml.dist für diese Testsuite.In dieser Datei finden Sie den obigen Code, der definiert, welche Datei für verschiedene Codetests ausgeführt werden soll.
Zum Eingrenzen wird angezeigt,
PHP Coding Standard Verification
testsuite
dass die Datei testsuite / Magento / Test / Php / LiveCodeTest.php ausgeführt wirdWenn Sie diese Datei öffnen, finden Sie verschiedene Funktionen, mit denen Sie nach verschiedenen Arten von Code-Problemen suchen können. Die auszuführende Funktion ist
testCopyPaste
Hier finden Sie einen Code, mit dem alle Dateien / Ordner aus dieser Codeüberprüfung auf die schwarze Liste gesetzt werden.
Diese
foreach
Funktion sucht nach.txt
Dateien, die im Verzeichnis dev / tests / static / testsuite / Magento / Test / Php / _files / phpcpd / blacklist hinzugefügt wurden . Es liest die Datei und ignoriert alle Ordner, die von der Erkennung des Kopier-Einfüge-Codes ausgeschlossen werden sollen.Nachdem Sie alle Blacklist-Dateien / -Ordner zum Code hinzugefügt haben, wird der folgende Code ausgeführt.
Dieser Code führt die
run
Funktion der Datei dev / tests / static / framework / Magento / TestFramework / CodingStandard / Tool / CopyPasteDetector.php aus .Hier fügt der Code alle
blacklisted
Ordner / Dateien in der--exclude
Liste hinzu.Danach wird der
vendor/bin/phpcpd
Befehl ausgeführt.Hier im Befehl selbst hat Magento
schloss alle
Test
Dateien per Code ausEs wurden auch alle Code-Duplikate übersprungen, die weniger als 13 Code-Zeilen umfassen
Die Ausgabe für diese Befehlsausführung wird der in
testCopyPaste
function definierten Datei hinzugefügt . Der Dateiname für die Erkennung durch Kopieren und Einfügen lautet phpcpd_report.xml und befindet sich unter dev / tests / static / report .Nach erfolgreicher Ausführung des Befehls wird die Ausgabe zu den Berichtsdateien hinzugefügt.
quelle