Narzędzia do testowania jednostek w Magento

23

Czego używasz do testowania jednostek w Magento? A co wiesz o testowaniu jednostkowym i Magento? Niezależnie od tego, czy korzystasz z TDD, czy po prostu chcesz mieć zasięg testu jednostkowego dla komponentów projektu, potrzebujesz do tego pewnych narzędzi.

Pierwszym podstawowym podejściem jest użycie zwykłego phpunit, ale są rzeczy, które wymagają dodatkowych sztuczek, aby Magento było „testowalne”.

Wszystko, z czym pracowałem, jest związane z phpunit:

Czy są inne opcje?

FlorinelChis
źródło

Odpowiedzi:

14

Sprawdź PHPSpec z MageSpec, jeśli chcesz czegoś nie opartego na PHPUnit, ale z pewną integracją Magento. Jest użyteczny, ale nie tylko gotowy na najwyższy czas. Do kpienia z PHPSpec 2 używa Przepowiedni (co jest świetne), ale wcale nie lubi magicznych zdobywców i seterów. Z tego powodu lepiej zamiast tego używać Kpiny , która działa dobrze (i bardzo mi się to podoba).

Jest też Behat z BehatMage dla BDD z Magento. Warto rzucić okiem, ale zawodzi, na przykład, jeśli chcesz przetestować różne widoki sklepu w różnych domenach.

Istnieje także rozszerzenie BehatMage o nazwie MageBehat (okropne nazywanie!), Które powstało w wyniku hackatonu. Zapewnia BehatMage wiele akcji specyficznych dla Magento, ale szczerze mówiąc, niektóre z zastosowanych obejść to raczej hack niż prawdziwe rozwiązania podstawowych problemów. Mimo to jest użyteczny.

Mam nadzieję, że oba projekty - MageSpec i BehatMage - rozkwitną w przyszłości.

Vinai
źródło
Dziękuję Vinai za odpowiedź. Wiem o BehatMage i pracy wykonanej przez zespół w Inviqa / Session Digital (nie jest dla mnie jasna struktura ich firmy) ... Szukałem tylko phpunitów, Behat / BehatMage nie jest to dla mnie tak atrakcyjne, bawiłem się MageSpec jakiś czas temu.
FlorinelChis
Angielski nie jest moim językiem ojczystym, szczegóły, które podałem, mogłyby być jaśniejsze. Robię badania dla London Magento User Group - Grudzień Meetup.
FlorinelChis
3

Powinieneś iść z EcomDev PHPUnit .

Osobiście uważam, że wszyscy programiści Magento powinni dążyć do spójnego rozwiązania do testowania jednostkowego. EcomDev zapewnia najczęściej używane i najbardziej dojrzałe z tych frameworków, dzięki czemu masz już przyzwoitą pulę programistów z doświadczeniem w tym. Korzystanie z jednego frameworka zmniejsza również potrzebę instalowania bajillionu różnych frameworków.

EcomDev PHPUnit ma jednak tę dziwną konwencję polegającą na umieszczaniu testów bezpośrednio obok kodu produkcyjnego. Na szczęście można to łatwo rozwiązać, modyfikując kilka wierszy kodu. EcomDev również nie spieszy się z aktualizacjami (chociaż ich repozytorium Github wykazuje oznaki aktywności, więc wciąż żyją).

Thai Phan
źródło
Mówiąc to wszystko, czy jest gdzieś repozytorium, które ma zestaw zdefiniowanych testów jednostkowych (przy użyciu ecomdev_unittest), które testują podstawową funkcjonalność? (Wiem, że MTAF to robi, ale czy gdzieś są jakieś wstępnie zdefiniowane testy jednostkowe?)
ProxiBlue
1
@ProxiBlue Nie, nie znam żadnych. To jednak całkiem niezły pomysł na projekt społecznościowy.
Thai Phan
2

Do testów jednostkowych najlepszy jest EcomDev PHPUnit.

Może chcesz spróbować testów funkcjonalnych na Magento? Przykład z casperjs: https://github.com/jacquesbh/hackathon-casperjs/

Jacques Bodin-Hullin
źródło
1
było na to inne pytanie.
FlorinelChis,