Trong thế giới ruby, TDD được hỗ trợ bởi các công cụ được xây dựng trong khuôn khổ. Factory Girl, Mocha, rSpec và những người khác cho phép các nhà phát triển tạo ra các thử nghiệm dễ dàng và linh hoạt nhằm giải quyết các trường hợp thử nghiệm cần thiết.
Tôi cũng đã nản lòng vì thiếu công cụ TDD trong Drupal. Vấn đề lớn nhất của tôi với họ là thời gian cần thiết để chạy một bài kiểm tra. Các chu kỳ phát triển không thể bị chậm lại bởi các thử nghiệm riêng lẻ mất 60-90 giây mỗi lần lặp. Các bộ kiểm tra đầy đủ sẽ chạy vào khung thời gian nhiều giờ, nếu bạn bận tâm viết các bài kiểm tra.
Tôi nghi ngờ nó phải làm với việc sao chép toàn bộ db mỗi khi chạy thử, nhưng điều đó không có khả năng thay đổi trong tương lai gần từ những gì tôi có thể nói, đặc biệt là nếu bạn cần sử dụng DrupalWebTestCase để làm như vậy.
Tôi đang hack cùng một giải pháp bằng Phactory và phpunit, tự khởi động Drupal. Rõ ràng đang gặp phải một số vấn đề và chưa hoàn thành nó, nhưng nó đã đến đó.
May mắn là hầu hết công việc của tôi là ở lớp phụ trợ, vì vậy tôi có thể ở cấp DRUPAL_BOOTSTRAP_DATABASE. Nhưng tôi đang gặp nhiều tình huống trong đó tôi sẽ cần toàn bộ.
Cuối cùng, TDD trong Drupal không được hỗ trợ tốt, vì vậy bạn có thể tự viết để làm cho nó hoạt động bên ngoài khung kiểm tra drupal hoặc chịu đựng hiệu suất kém.
- CẬP NHẬT -
Tôi đã thiết lập thành công tích hợp Drupal đầy đủ với Phactory và hiện đang chạy thử nghiệm của tôi thông qua phpunit thay vì Trường hợp thử nghiệm Web Drupal. Vì vậy, nó có thể.
Tôi hy vọng sẽ đến một điểm mà tôi có thể phát hành nó và nó có thể được tích hợp vào tài liệu Phactory.
- CẬP NHẬT 2 -
Tài liệu về cách tôi thiết lập Phactory có tại https://github.com/trimbletodd/phactory .