Magento2'de belirli bir modül için testler yapın


52

Magento'nun testleri kullanması php bin/magento dev:tests:runçok zaman alıyor.
Testleri yalnızca belirli bir modül için yapmanın bir yolu var mı?

(Ünite) testinde noob'um, merhamet et.


Komutun ne yaptığına bakmayı denedin mi? Yani, kodunda, belki de başka bir argüman (veya listesi) alıyor.
Julien Lachal

1
@JulienLachal. Bunu denedim. Sadece olabilecek bir argümanı (tip) kabul eder all, unit, integration, integration-all, static, static-all, integrity, legacy, default. Ve -h, -q, ...bunun gibi bazı genel seçenekler tüm komutlar için kullanılabilir. Yani onlar hakkında özel bir şey yok
Marius

Yanıtlar:


51

Magento 2 testi çalıştırmak için phpunit çerçevesini kullanır. Her tür ve modül için aşağıdaki komutu çalıştırabilirsiniz:

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

Örneğin:

  • Katalog için birim testini çalıştırmak için run komutuna ihtiyacınız var.

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

  • çalıştırmak entegrasyon için testi Katalog , sen koşmak gerek vendor/phpunit/phpunit/phpunit -c dev/tests/integration/phpunit.xml.dist dev/tests/integration/testsuite/Magento/Catalog

Şu anda sadece birim testi modüllere taşındı. Ayrıca statik ve entegrasyon bütünlüğü testi tüm magento kodlarıyla çalışıyor.


Yani genel olarak konuşursak, otomatik olarak yapılan bütün testler resmi olarak 2.0.0 yayınlanmış olsa bile hala bir karmaşa mı?
Peedee

@KAndy, katalog modülü birim testini yaptım, ancak cli bunun gibi bir hata gösteriyor, Ölümcül hata: Tanımsız işlev çağrısı Magento \ Catalogue \ Block \ Adminhtml \ Product \ Edit \ Action \ Attribute \ Tab __ () / var / www / html / magento2 / vendor / magento / module-catalogue / Block / Adminhtml / Ürün / Düzenleme / İşlem / Özellik / Sekme / Envanter.php satır 89'da. Çekirdek modülünde hata görüntüleniyor. bunu açıkla.
Rakesh Jesadiya 14:15

@RakeshJesadiya, bootstrap dosyanız app / functions.php içermiyor gibi görünüyor, burada işlev __ () tanımlandı
KAndy

Evet .. benim için "vendor / phpunit / phpunit / phpunit -c dev / testler / birim / phpunit.xml.dist app / code / Magento / Katalog / Test / Birim'i çalıştırdığımda 2.0.2'de hiç çalışmıyor / "magento kök dizininde bana verir" Sebastian Bergmann tarafından PHPUnit 4.1.0. "app / code / Magento / Katalog / Test / Birim / .php" dosyasını açamıyor. " ...
Lachezar Raychev

1
@LachezarRaychev Magento çekirdek kodları, app / code / Magento yolunda değildir. Satıcı / magento'ya taşındı. Lütfen bu komutu deneyinphp vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/
Franc

15

kandy'nin cevabı gitmenin yolu gibi görünüyor ama bu arada bunu yapmanın hızlı ve kirli bir yolunu buldum.

Kopya dev/tests/unit/phpunit.xml.distiçin dev/tests/unit/phpunit.xmlve değiştirme

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

ile

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

ve etiketin directoryiçindeki diğer etiketleri yorumlayın <testsuite>.

İşiniz bittiğinde, değişikliklerinizi geri alın veya kaldırın phpunit.xml.


merhaba marius, katalog modülü için cli kullanarak birim testi nasıl yapılır? Hangi komutu çalıştırmalıyız? Temel yol magento2 / bin?
Rakesh Jesadiya

KAndy'nin cevabında. vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
Marius

1
@Rakesh :: lütfen bu güncellenmiş komutu deneyin. php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/Magento'nun ana kodları satıcı / magento yoluna taşınır.
Frank

kullanarak özel modül için birim testi nasıl çalıştırılır: php satıcısı / phpunit / phpunit / phpunit -c dev / testleri / birim / phpunit.xml.disvendor / magento / module-catalog /
Sushivam

@SachinS. Tıpkı tarif ettiğim gibi. phpunit.xmldosyayı geçici olarak düzenleyin ve test etmek istediğiniz modülün yolunu yerleştirin.
Marius

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.