In der Ruby-Welt wird TDD durch in das Framework integrierte Tools erleichtert. Mit Factory Girl, Mocha, rSpec und anderen können Entwickler einfach und dynamisch Tests erstellen, die die benötigten Testfälle adressieren.
Der Mangel an TDD-Tools in Drupal hat mich ebenfalls frustriert. Mein größtes Problem ist, wie lange es dauert, einen einzelnen Test durchzuführen. Die Entwicklungszyklen können nicht durch einzelne Tests verlangsamt werden, die jeweils 60 bis 90 Sekunden dauern. Vollständige Testsuiten würden mehrere Stunden in Anspruch nehmen, wenn Sie sich die Mühe machen, die Tests überhaupt zu schreiben.
Ich vermute, es hat mit dem Kopieren einer vollständigen Datenbank bei jedem Testlauf zu tun, aber das wird sich in naher Zukunft wahrscheinlich nicht ändern, was ich sagen kann, besonders wenn Sie dazu DrupalWebTestCase verwenden müssen.
Ich hacke eine Lösung mit Phactory und phpunit zusammen, die Drupal manuell bootet. Offensichtlich sind einige Probleme aufgetreten und haben es noch nicht beendet, aber es kommt dahin.
Glücklicherweise liegt der Großteil meiner Arbeit auf der Backend-Ebene, sodass ich auf der Ebene DRUPAL_BOOTSTRAP_DATABASE bleiben kann. Aber ich stoße auf mehr Situationen, in denen ich den vollen Stack brauche.
Letztendlich wird TDD in Drupal nicht gut unterstützt, so dass Sie Ihr eigenes schreiben können, damit es außerhalb des Drupal-Test-Frameworks funktioniert oder die schlechte Leistung erträgt.
- UPDATE -
Ich habe erfolgreich eine vollständige Drupal-Integration mit Phactory eingerichtet und führe jetzt meine Tests über phpunit anstelle des Drupal-Web-Testfalls aus. Also ist es möglich.
Hoffentlich komme ich zu einem Punkt, an dem ich es veröffentlichen und in das Phactory-Dokument integrieren kann.
- UPDATE 2 -
Eine Anleitung zum Einrichten von Phactory finden Sie unter https://github.com/trimbletodd/phactory .