Magento2에서 특정 모듈에 대한 테스트 실행


52

Magento에 대한 테스트를 실행하려면 php bin/magento dev:tests:run많은 시간이 걸립니다.
특정 모듈에 대해서만 테스트를 실행하는 방법이 있습니까?

나는 (단위) 테스트에서 멍청한 놈이므로 자비를 베푸십시오.


명령이 수행하는 작업을 보셨습니까? 코드에서 아마도 다른 주장 (또는 목록)이 필요할 것입니다.
— Julien Lachal

1
@JulienLachal. 그것을 시도했다. 하나의 인수 (유형) 만 허용 all, unit, integration, integration-all, static, static-all, integrity, legacy, default됩니다. 그리고 이와 같은 일반적인 옵션 -h, -q, ...은 모든 명령에 사용할 수 있습니다. 그래서 그들에 대해 특별한 것은 없습니다
— Marius

답변:


51

Magento 2는 phpunit framework를 사용하여 테스트를 실행합니다. 다음 명령을 사용하여 유형 및 모듈별로 테스트를 실행할 수 있습니다.

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

예를 들면 다음과 같습니다.

  • 실행 유닛 에 대한 테스트 카탈로그 , 당신은 명령을 실행해야합니다

    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

현재 단위 테스트 만 모듈로 옮겼습니다. 또한 정적 및 통합 무결성 테스트는 모든 마 젠토 코드와 함께 작동합니다.


따라서 일반적으로 전체 자동화 테스트는 공식적으로 2.0.0을 출시하더라도 여전히 엉망입니까?
— 오줌

@KAndy, 카탈로그 모듈 단위 테스트를 실행했지만 cli는 다음과 같은 오류를 표시합니다. 치명적 오류 : / var / www /의 정의되지 않은 함수 Magento \ Catalog \ Block \ Adminhtml \ Product \ Edit \ Action \ Attribute \ Tab __ () 호출 89 행의 html / magento2 / vendor / magento / module-catalog / Block / Adminhtml / Product / Edi‌t / Action / Attribute / Tab / Inventory.php. 핵심 모듈 오류는 표시됩니다. 오류의 원인은 무엇입니까? PLZ는 그것을 설명합니다.
— Rakesh Jesadiya

@RakeshJesadiya, 부트 스트랩 파일에 app / functions.php가 포함되어 있지 않은 것 같습니다. 여기서 __ () 함수가 정의되었습니다
— KAndy

예 .. 나를 위해 "vendor / phpunit / phpunit / phpunit -c dev / tests / unit / phpunit.xml.dist app / code / Magento / Catalog / Test / Unit을 실행할 때 2.0.2에서 전혀 실행되지 않습니다. magento 루트 디렉토리의 "/"는 "세바스티안 Bergmann의 PHPUnit 4.1.0을 제공합니다."app / code / Magento / Catalog / Test / Unit / .php 파일을 열 수 없습니다. " ...
— Lachezar Raychev

1
@LachezarRaychev Magento 핵심 코드가 app / code / Magento 경로에 없습니다. 벤더 / 마젠 토로 옮겼습니다. 이 명령을 시도하십시오php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/
— 프랑

15

kandy의 답변은 갈 길과 같은 이음새가 있지만 그 동안 나는 빠르고 더러운 방법을 찾았습니다.

복사 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.


안녕하세요 marius, 카탈로그 모듈에 cli를 사용하여 단위 테스트를 수행하는 방법? 우리가 실행 해야하는 명령은 무엇입니까? 기본 경로는 magento2 / bin입니까?
— Rakesh Jesadiya

그것은 KAndy의 대답에 있습니다. vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist app/code/Magento/Catalog/Test/Unit/
— Marius

1
@Rakesh ::이 업데이트 된 명령을 시도하십시오. php vendor/phpunit/phpunit/phpunit -c dev/tests/unit/phpunit.xml.dist vendor/magento/module-catalog/마젠 토의 핵심 코드는 벤더 / 마 젠토 경로로 이동합니다.
— Franc

php vendor / phpunit / phpunit / phpunit -c dev / tests / unit / phpunit.xml.disvendor / magento / module-catalog /
— Sushivam 2016 년

@SachinS. 내가 설명한대로 phpunit.xml파일을 임시로 편집하고 테스트하려는 모듈의 경로를 지정하십시오.
— Marius

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.