Запустіть тести для конкретного модуля в Magento2


52

Запуск тестів на Magento на використання php bin/magento dev:tests:runпотребує багато часу.
Чи є спосіб запустити тести лише для конкретного модуля?

Я нобіль в (одиничному) тестуванні, тож помилуйся.


Ви спробували подивитися, що робить команда? Я маю на увазі, що в його коді, можливо, він бере інший аргумент (або список).
Жульєн Лашал

1
@JulienLachal. Спробував це. Він приймає лише один аргумент (тип), який може бути all, unit, integration, integration-all, static, static-all, integrity, legacy, default. І деякі загальні параметри, такі як -h, -q, ..., доступні для всіх команд. Тож нічого особливого щодо них
Маріус

Відповіді:


51

Magento 2 використовує рамку phpunit для запуску тесту. Ви можете запустити тест для кожного типу та модуля за допомогою команди:

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

Наприклад:

  • щоб запустити тест одиниці для каталогу , вам потрібна команда run

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

  • щоб запустити тест інтеграції для каталогу , вам потрібно запустити vendor/phpunit/phpunit/phpunit -c dev/tests/integration/phpunit.xml.dist dev/tests/integration/testsuite/Magento/Catalog

В даний час тільки модульний тест переміщений до модулів. Також статичний і інтегральний тест на цілісність працює з усім кодом magento.


Тож загалом все автоматичне тестування все ще безлад, хоча вони офіційно випустили 2.0.0?
peedee

@KAndy, я запустив тест модуля каталогічного модуля, але кліп відображає помилку на зразок цієї, фатальна помилка: виклик невизначеної функції Magento \ Каталог \ Блок \ Adminhtml \ Продукт \ Редагувати \ Дія \ Атрибут \ Tab __ () в / var / www / html / magento2 / vendor / magento / module-catalog / Block / Adminhtml / Product / Edi‌ t / Action / Attribute / Tab / Inventory.php на рядку 89. У базовому модулі відображаються помилки. Що є причиною помилки. PLZ поясніть це.
Ракеш Єсадія

@RakeshJesadiya, схоже, що ваш файл завантаження не містить app / функции.php, де визначено функцію __ ()
KAndy,

Так ... для мене він зовсім не працює 2.0.2, коли я запускаю "vendor / phpunit / phpunit / phpunit -c dev / тести / блок / phpunit.xml.dist додаток / код / ​​Magento / Каталог / Тест / Блок / "у кореневому каталозі magento це дає мені" PHPUnit 4.1.0 Себастьяна Бергмана. Неможливо відкрити файл "app / code / Magento / Catalog / Test / Unit / .php". " ...
Лачезар Райчев

1
@LachezarRaychev Основні коди Magento не в додатку / коді / Magento шляху. Її перемістили до продавця / магенто. Спробуйте цю командуphp vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/
Франк

15

відповіді Кенді схожі на шлях, але тим часом я знайшов швидкий і брудний спосіб це зробити.

Копіювати dev/tests/unit/phpunit.xml.distв dev/tests/unit/phpunit.xmlі замінити

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

з

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

і прокоментуйте інші directoryтеги всередині <testsuite>тегу.

Коли ви закінчите, скасуйте зміни або видаліть phpunit.xml.


привіт Маріусе, як зробити тест одиниць, використовуючи cli для модуля каталогу? Яку команду нам потрібно виконати? Базовий шлях - magento2 / bin?
Ракеш Єсадія

Це у відповіді від Канді. vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
Маріус

1
@Rakesh :: будь ласка, спробуйте цю оновлену команду. php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/Основні коди Magento переміщені на шлях постачальника / магенто.
Франк

як запустити тест одиниці для користувальницького модуля, використовуючи: php vendor / phpunit / phpunit / phpunit -c dev / testing / unit / phpunit.xml.disvendor / magento / module-catalog /
Sushivam

@SachinS. Так само, як я описав. тимчасово відредагуйте phpunit.xmlфайл і покладіть шлях до модуля, який ви хочете протестувати.
Маріус

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.