在红宝石世界中,框架中内置的工具促进了TDD。Factory Girl,Mocha,rSpec和其他工具使开发人员可以轻松动态地创建测试,以解决所需的测试用例。
我也对Drupal中缺乏TDD工具感到沮丧。我最大的问题是运行单个测试所花费的时间。每次测试花费60-90秒的时间进行单独的测试不会降低开发周期。如果您根本不愿意编写测试,则完整的测试套件将花费数小时的时间。
我怀疑它与每次运行测试时复制完整的数据库有关,但是根据我的判断,这不太可能在不久的将来改变,特别是如果您需要使用DrupalWebTestCase这样做的话。
我正在使用Phactory和phpunit 共同破解一个解决方案,该解决方案会手动引导Drupal。显然遇到了一些问题,但还没有完成,但是已经到了。
幸运的是,我的大部分工作都在后端层,因此我可以停留在DRUPAL_BOOTSTRAP_DATABASE级别。但是我遇到了更多需要完整堆栈的情况。
最后,Drupal中的TDD没有得到很好的支持,因此您可以编写自己的DDD以使其在Drupal测试框架之外工作,或者承受较差的性能。
-更新-
我已经成功设置了与Phactory的完整Drupal集成,并且现在通过phpunit而不是Drupal Web测试用例来运行我的测试。因此有可能。
我希望能达到可以发布它的地步,并且可以将其合并到Phactory文档中。
-更新2-
有关如何设置Phactory的文档位于https://github.com/trimbletodd/phactory。