W świecie ruby TDD jest ułatwiony dzięki narzędziom wbudowanym w framework. Factory Girl, Mocha, rSpec i inne pozwalają programistom tworzyć łatwe i dynamiczne testy uwzględniające potrzebne przypadki testowe.
Sfrustrował mnie również brak narzędzi TDD w Drupal. Moim największym problemem z nimi jest czas potrzebny na przeprowadzenie pojedynczego testu. Cykli programowania nie można spowolnić przez pojedyncze testy trwające 60–90 sekund po każdej iteracji. Pełne pakiety testowe działałyby w wielogodzinnym przedziale czasowym, jeśli w ogóle zawracasz sobie głowę pisaniem testów.
Podejrzewam, że ma to związek z kopiowaniem pełnej bazy danych za każdym razem, gdy uruchamiany jest test, ale prawdopodobnie nie zmieni się to w najbliższej przyszłości z tego, co mogę powiedzieć, szczególnie jeśli potrzebujesz do tego DrupalWebTestCase.
Hakuję razem rozwiązanie przy użyciu Phactory i phpunit, które ręcznie ładują Drupala. Oczywiście napotkaliśmy pewne problemy i jeszcze tego nie ukończyłem, ale się to udaje.
Na szczęście większość mojej pracy dotyczy warstwy wewnętrznej, więc mogę pozostać na poziomie DRUPAL_BOOTSTRAP_DATABASE. Ale wpadam na więcej sytuacji, w których będę potrzebować pełnego stosu.
Ostatecznie TDD w Drupal nie jest dobrze obsługiwane, więc możesz napisać własny, aby działał poza ramą testową drupal lub znieść słabą wydajność.
-- AKTUALIZACJA --
Z powodzeniem skonfigurowałem pełną integrację Drupala z Phactory i teraz przeprowadzam testy za pomocą phpunit zamiast testowej witryny Drupal. To jest możliwe.
Mam nadzieję, że dojdę do punktu, w którym mogę go wydać i można go włączyć do dokumentu Phactory.
- AKTUALIZACJA 2 -
Dokument na temat konfiguracji Phactory znajduje się na stronie https://github.com/trimbletodd/phactory .