Esegui i test per un modulo specifico in Magento2


52

L'esecuzione dei test per Magento per l'utilizzo php bin/magento dev:tests:runrichiede molto tempo.
Esiste un modo per eseguire i test solo per un modulo specifico?

Sono un noob nei test (unit) quindi abbi pietà.


Hai provato a vedere cosa fa il comando? Voglio dire, nel suo codice, forse ci vuole un altro argomento (o un elenco di).
Julien Lachal,

1
@JulienLachal. Ci ho provato. Accetta solo un argomento (tipo) che può essere all, unit, integration, integration-all, static, static-all, integrity, legacy, default. E alcune opzioni generali come -h, -q, ...questa sono disponibili per tutti i comandi. Quindi niente di speciale su di loro
Marius

Risposte:


51

Magento 2 usa il framework phpunit per eseguire test. Puoi eseguire test per tipo e modulo con il comando:

{phpunit_executable} -c {Magentoroot}/dev/test/{type}/phpunit.xml[.dist] path/to/module/test/dir

Per esempio:

  • per eseguire unit test per Catalog , è necessario eseguire il comando

    vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/

  • per eseguire il test di integrazione per Catalog , è necessario eseguire vendor/phpunit/phpunit/phpunit -c dev/tests/integration/phpunit.xml.dist dev/tests/integration/testsuite/Magento/Catalog

Attualmente solo il test unitario è stato spostato nei moduli. Anche il test di integrità statica e di integrazione funziona con tutto il codice magento.


Quindi in generale l'intero test automatizzato è ancora un casino, anche se hanno ufficialmente rilasciato la 2.0.0?
Peedee,

@KAndy, ho eseguito il test unitario del modulo catalogo, ma cli visualizza un errore del genere, Errore irreversibile: chiamata alla funzione indefinita Magento \ Catalog \ Block \ Adminhtml \ Product \ Edit \ Action \ Attribute \ Tab __ () in / var / www / html / magento2 / vendor / magento / module-catalogue / Block / Adminhtml / Product / Edi‌ t / Action / Attribute / Tab / Inventory.php on line 89. Nel modulo principale vengono visualizzati gli errori. Qual è la causa dell'errore. per favore spiegalo.
Rakesh Jesadiya,

@RakeshJesadiya, sembra che il tuo file bootstrap non includa app /
Functions.php

Sì .. per me non funziona affatto su 2.0.2 quando eseguo "vendor / phpunit / phpunit / phpunit -c dev / tests / unit / phpunit.xml.dist app / code / Magento / Catalog / Test / Unit / "nella directory principale di magento mi dà" PHPUnit 4.1.0 di Sebastian Bergmann. Impossibile aprire il file "app / code / Magento / Catalog / Test / Unit / .php". " ...
Lachezar Raychev,

1
@LachezarRaychev I codici core di Magento non si trovano nel percorso app / code / Magento. Si è trasferito a fornitore / magento. Per favore, prova questo comandophp vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/
Franc,

15

La risposta di Kandy è come la strada da percorrere, ma nel frattempo ho trovato un modo rapido e sporco per farlo.

Copia dev/tests/unit/phpunit.xml.distper dev/tests/unit/phpunit.xmle sostituire

<directory suffix="Test.php">../../../app/code/*/*/Test/Unit</directory>

con

<directory suffix="Test.php">../../../app/code/[Namespace]/[Module]/Test/Unit</directory>  

e commentare gli altri directorytag all'interno del <testsuite>tag.

Al termine, ripristinare le modifiche o rimuoverle phpunit.xml.


ciao marius, come fare unit test usando cli per il modulo catalogo? quale comando dobbiamo eseguire? percorso base è magento2 / bin?
Rakesh Jesadiya,

È nella risposta di KAndy. vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
Marius

1
@Rakesh :: prova questo comando aggiornato. php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/I codici principali di Magento vengono spostati nel percorso fornitore / magento.
Franco,

come eseguire unit test per il modulo personalizzato utilizzando: php vendor / phpunit / phpunit / phpunit -c dev / tests / unit / phpunit.xml.disvendor / magento / module-catalog /
Sushivam

@SachinS. Proprio come ho descritto. modificare temporaneamente il phpunit.xmlfile e inserire il percorso del modulo che si desidera verificare.
Marius

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.