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.distdev/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.