Công cụ kiểm tra đơn vị trong Magento


23

Bạn sử dụng gì để kiểm tra đơn vị trong Magento? Hoặc bạn biết gì về Đơn vị kiểm tra và Magento? Cho dù bạn làm TDD hay bạn chỉ muốn có phạm vi kiểm tra đơn vị cho các thành phần dự án của mình, bạn cần một số công cụ để thực hiện việc này.

Cách tiếp cận cơ bản đầu tiên là sử dụng phpunit đơn giản, nhưng có những thứ cần thêm mánh lới quảng cáo để làm cho Magento "có thể kiểm tra".

Mọi thứ tôi làm việc đều liên quan đến phpunit:

Có những lựa chọn khác?

Câu trả lời:


14

Hãy xem PHPSpec với MageSpec nếu bạn muốn thứ gì đó không dựa trên PHPUnit, nhưng với một số tích hợp Magento. Nó có thể sử dụng, nhưng không chỉ hoàn toàn sẵn sàng cho thời gian chính. Để chế nhạo PHPSpec 2 sử dụng Lời tiên tri (rất hay), nhưng hoàn toàn không giống như ma thuật và setters ma thuật. Vì lý do đó tốt hơn nên sử dụng Mockery thay vào đó, nó hoạt động tốt (và tôi cũng thích nó rất nhiều).

Sau đó, còn có Behat với BehatMage cho BDD với Magento. Đáng xem, nhưng nó thất bại trong ví dụ nếu bạn muốn kiểm tra các lượt xem cửa hàng khác nhau trên các tên miền khác nhau.

Ngoài ra còn có một phần mở rộng cho BehatMage được gọi là MageBehat (đặt tên khủng khiếp!), Xuất phát từ một cuộc thi hackathon. Nó cung cấp rất nhiều hành động cụ thể của Magento cho BehatMage, nhưng thành thật mà nói, một số cách giải quyết được sử dụng là một bản hack sau đó là giải pháp thực sự cho các vấn đề tiềm ẩn. Tuy nhiên, nó có thể sử dụng được.

Tôi hy vọng sẽ thấy cả hai dự án - MageSpec và BehatMage - sẽ phát triển mạnh trong tương lai.


Cảm ơn Vinai đã trả lời. Tôi biết về BehatMage và công việc được thực hiện bởi nhóm tại Inviqa / Phiên kỹ thuật số (tôi không rõ cấu trúc công ty của họ) ... Tôi chỉ tìm kiếm công cụ phpunit, Behat / BehatMage không hấp dẫn với tôi, tôi đã chơi với tôi MageSpec một lúc trước.
FlorinelChis

Tiếng Anh không phải là ngôn ngữ mẹ đẻ của tôi, các chi tiết tôi cung cấp có thể rõ ràng hơn. Tôi đang thực hiện một số nghiên cứu cho Nhóm người dùng London Magento - Meetup tháng 12.
FlorinelChis

4

PHPUnit là những gì Magento 2 sử dụng. Đây là một tệp mẫu trên GitHub. https://github.com/magento/magento2/blob/master/dev/tests/unit/testsuite/Magento/Captcha/Helper/DataTest.php . (Tôi đã chọn tệp đó một cách ngẫu nhiên.) Bạn có thể muốn xem nhanh phương pháp thử nghiệm Magento 2 để mọi thứ bạn làm bây giờ đều tương thích với Magento 2 khi phát hành.


Tôi không nghĩ OP đang nói về Magneto 2 ở đây.
Marius

3

Bạn nên đi với EcomDev PHPUnit .

Cá nhân tôi tin rằng tất cả các nhà phát triển Magento nên cố gắng cho một giải pháp thử nghiệm đơn vị nhất quán. EcomDev cung cấp các khung công tác được sử dụng phổ biến nhất và trưởng thành nhất để bạn có một nhóm các nhà phát triển có kinh nghiệm trong đó. Sử dụng một khung duy nhất cũng giúp giảm nhu cầu cài đặt một khung khác nhau.

EcomDev PHPUnit không có quy ước kỳ quặc này về việc đặt các thử nghiệm trực tiếp bên cạnh mã sản xuất, tuy nhiên. May mắn thay, điều này được giải quyết dễ dàng bằng cách sửa đổi một vài dòng mã. EcomDev cũng dành thời gian ngọt ngào của họ với các bản cập nhật (mặc dù repo Github của họ có dấu hiệu hoạt động nên rõ ràng họ vẫn còn sống).


Vì vậy, nói tất cả những điều đó, có một repo ở đâu đó có một bộ các bài kiểm tra đơn vị được xác định (sử dụng ecomdev_unittest) để kiểm tra chức năng cốt lõi không? (Tôi biết MTAF thực hiện việc này, nhưng có các bài kiểm tra đơn vị được xác định trước ở đâu đó không?)
ProxiBlue

1
@ProxiBlue Không, không có bất kỳ điều gì tôi biết. Đó là một ý tưởng khá tốt cho một dự án cộng đồng, tuy nhiên.
Thái Phan

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.