使用DrupalUnitTestCase
单元测试Drupal模块失败。我可能会忘记一些。单元测试Drupal与DrupalUnitTestCase在数据库设置上失败
测试运行正常,直到我创造了一些类的实例:
$foo = new FooBar();
在这种情况下,Drupal的决定做一些魔术和试图调用数据库,以找到在注册表中的某些文件。
Test PDOStatement->execute() failed: <em class="placeholder">PDOException</em>: SQLSTATE[42S02]: Base table [error]
or view not found: 1146 Table 'td_development.simpletest50921registry' doesn't exist: SELECT
filename FROM {registry} WHERE name = :name AND type = :type; Array
(
[:name] => FooBar
[:type] => interface
)
DrupalUnitTestCase
,而不是DrupalWebTestCase
不建立一个数据库,通过设计。所以这个失败的原因很明显。
但是,我不想让Drupal在数据库中查找所有我想要创建的实例。如何避免Drupal在注册表中查找文件?
对于像我这样迷失的灵魂 - 这个用例/错误同样适用于(难过)实体和实体控制器。标记为interwebz的好处。还将相关信息添加到接受的(@Berdir)答案中。 – 2013-12-11 01:48:28