마젠 토의 단위 테스트 도구


23

마 젠토에서 단위 테스트를 위해 무엇을 사용합니까? 아니면 단위 테스트와 마 젠토에 대해 무엇을 알고 있습니까? TDD를 수행하든 프로젝트 구성 요소에 대한 단위 테스트 적용 범위를 원하든이를 수행하려면 몇 가지 도구가 필요합니다.

첫 번째 기본 접근법은 일반 PHPUnit을 사용하는 것이지만 Magento를 "테스트 가능"하게하려면 추가 특수 효과가 필요합니다.

내가 일한 모든 것은 phpunit과 관련이 있습니다.

다른 옵션이 있습니까?

답변:


14

PHPUnit을 기반으로하지 않고 일부 Magento 통합을 원하는 경우 MageSpec을 사용하여 PHPSpec을 확인하십시오 . 유용하지만 프라임 타임에 대한 준비는 아닙니다. 모의를 위해 PHPSpec 2는 Prophecy (위대한)를 사용하지만 마법 게터 나 세터를 전혀 좋아하지 않습니다. 따라서 Mockery 를 사용하는 것이 좋습니다 .

그런 다음 Magento와 함께 BDD를 위해 BehatMage와 함께 Behat 이 있습니다 . 살펴볼 가치가 있지만 예를 들어 다른 도메인에서 다른 상점보기를 테스트하려는 경우 실패합니다.

해커 톤에서 나온 MageBehat (awful naming!) 이라는 BehatMage 의 확장 기능도 있습니다 . BehatMage에 많은 Magento 특정 작업을 제공하지만 솔직히 말하면 사용 된 일부 해결 방법은 근본적인 문제에 대한 해킹보다 실제 해결책입니다. 여전히 사용 가능합니다.

앞으로 MageSpec과 BehatMage 프로젝트가 번창 할 것으로 기대합니다.


답장을 보내 주셔서 감사합니다. 나는 BehatMage와 Inviqa / Session Digital 팀이 수행 한 작업에 대해 알고 있습니다. (회사 구조가 확실하지 않습니다.) 얼마 전에 MageSpec.
FlorinelChis

영어는 모국어가 아니며 제공 한 세부 사항이 더 명확 할 수 있습니다. London Magento User Group-December Meetup에 대해 조사 중입니다.
FlorinelChis

4

PHPUnit은 Magento 2가 사용하는 것입니다. 다음은 GitHub의 샘플 파일입니다. https://github.com/magento/magento2/blob/master/dev/tests/unit/testsuite/Magento/Captcha/Helper/DataTest.php . (이 파일을 무작위로 선택했습니다.) Magento 2 테스트 접근 방식을 간단히 살펴보고 현재 릴리스 한 모든 것이 Magento 2와 호환되도록 할 수 있습니다.


OP가 Magneto 2에 대해 이야기하고 있다고 생각하지 않습니다.
Marius

3

EcomDev PHPUnit 과 함께 가야 합니다.

저는 개인적으로 모든 마 젠토 개발자들이 일관된 단위 테스트 솔루션을 위해 노력해야한다고 생각합니다. EcomDev는 이러한 프레임 워크 중 가장 일반적으로 사용되고 가장 성숙한 프레임 워크를 제공하므로 이미 경험이 풍부한 개발자 풀을 보유하고 있습니다. 단일 프레임 워크를 사용하면 bajillion의 다른 프레임 워크를 설치할 필요가 줄어 듭니다.

그러나 EcomDev PHPUnit은 생산 코드와 직접 테스트를하는 이상한 규칙을 가지고 있습니다. 다행히도 몇 줄의 코드를 수정하면 쉽게 해결할 수 있습니다. EcomDev는 업데이트로 달콤한 시간을 보냅니다 (Github 저장소에 활동 징후가 표시되어 있어도 여전히 살아 있습니다).


그렇다면 핵심 기능을 테스트하는 정의 된 단위 테스트 세트 (ecomdev_unittest 사용)가있는 저장소가 있습니까? (MTAF는 이것을 알고 있지만 어딘가에 미리 정의 된 단위 테스트가 있습니까?)
ProxiBlue

1
@ProxiBlue 아니요, 내가 아는 것이 없습니다. 그러나 이것은 커뮤니티 프로젝트에있어 아주 좋은 아이디어입니다.
타이 판

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