当前位置: 首页 > 编程笔记 >

Drupal 6最简单的两个初学者错误

刘英彦
2023-03-14
本文向大家介绍Drupal 6最简单的两个初学者错误,包括了Drupal 6最简单的两个初学者错误的使用技巧和注意事项,需要的朋友参考一下

Simpletest是一个Drupal模块,我已经使用了大约一周的时间来对我一直在研究的模块进行单元测试。这是一个出色而强大的模块,每个模块开发人员都应使用该模块来正确测试其代码。但是,我确实遇到了一些奇怪的错误,这些错误花了我一段时间才能解决。因此,为了其他所有人的利益,我想将它们和解决方案一起发布在这里。这些错误可能是Drupal Simpletest新手开发人员会遇到的事情,这就是为什么我将它们标记为初学者错误。

第一个绝对是个错误,对于刚刚开始使用该模块的每个人来说,它都不是立即显而易见的。发生的情况是,当您尝试对核心数据库表甚至模块外部的表执行任何操作时,将尝试运行一些测试,并且会看到“表不存在”错误出现。在花了一个小时浏览drupal.org网站上的所有Drupal Simpletest文档之后,我对所发生的事情一无所知。

/**
 * Test case for Drupal unit tests.
 *
 * These tests can not access the database nor files. Calling any Drupal
 * function that needs the database will throw exceptions. These include
 * watchdog(), function_exists(), module_implements(),
 * module_invoke_all() etc.
 */
class DrupalUnitTestCase extends DrupalTestCase {

发生此错误的原因是,在创建Drupal Simpletest测试类时,您将扩展两个父类之一。这些是DrupalWebTestCase和DrupalUnitTestCase。发生表错误的原因是因为您可能正在使用DrupalUnitTestCase类对核心表进行操作。快速浏览一下DrupalUnitTestCase类的定义即可了解正在发生的事情。

从此注释(和构造函数)可以清楚地看到,此类初始化时没有数据库交互发生。您编写的测试类正在尝试访问尚未设置的测试表,更改类定义以扩展DrupalWebTestCase(如下所示)将解决此问题。

class MyAmazingModule_Test extends DrupalWebTestCase {
}

这样做的原因是DrupalUnitTestCase类仅应用于测试不需要数据库或文件级访问的事物。这些就是字符串操作或计算之类的东西。测试其他所有内容时,应使用DrupalWebTestCase类。

我遇到的第二个问题是,每当我尝试运行测试时,都会显示以下错误:

An error occurred. /batch?id=21&op=do
Fatal error: Call to undefined function install_no_profile_error() in /www/includes/install.inc</b> on line 277

深入研究核心代码并没有多大帮助,相关的代码行似乎与任何事情都没有多大关系,并且该函数install_no_profile_error()确实存在。我最终发现是由于Drupal Simpletest启动时使用默认注入配置文件创建的虚拟数据库所致,该虚拟数据库将用于每次运行的测试。在此特定实例中,已使用Acquia设置了Drupal,并且由于某些原因,缺少了配置文件目录中的默认灌输配置文件。这意味着当Drupal Simpletest尝试使用此配置文件进行自身安装时,它会崩溃并打印出上面的消息。

解决此问题非常容易,只需从drupal.org站点中获取一个Drupal副本,然后将默认灌输配置文件复制到配置文件目录中即可。当您重新运行测试时,它们都应该工作。

 类似资料:
  • 我是SAML v2.0技术的初学者,我掌握了相关的理论知识,但在Google上没有找到任何示例。有谁能为我提供一个简单的“SAML for v2.0”的分步示例吗。 到目前为止,我已经完成了理论部分,即。。,它支持单点登录,而且我了解服务提供商和身份提供商 目前我正在Linux环境下工作 我需要一步一步的基本示例,说明请求是如何从用户-

  • 在此输入图像说明

  • 本文向大家介绍java初学者如何让编程学习起来更简单,包括了java初学者如何让编程学习起来更简单的使用技巧和注意事项,需要的朋友参考一下 如果不喜欢学Java就不要学了,硬要逼着自己去学到头来也会是一知半解.不仅浪费时间,也浪费金钱,如果喜欢Java那就继续学,并且努力学,学好Java会有意想不到的好处。学习Java会有一个很艰难的过渡期,在此期间你要努力学好它并度过它,那么你就成功了。学任何东

  • 万事开头难, Java 编程的初学者常常会遇到各种各样的问题。对于自学的读者来说,则是需要花费更多的时间、精力来解决这些问题,而且一旦遇到的问题几天都得不到解决,往往会带来很大的挫败感。 所以本节介绍一些初学者经常出现的错误,以便减少读者在学习中的障碍。 1)大小写问题 之前我们已经提到,Java 是区分大小写的语言。但由于大部分读者都是 Windows 操作系统的忠实拥护者,因此对大小问题往往都

  • 我是Springmvc的初学者,我有两个jsp:-1。网络内容/索引。jsp:这很好用。索引文件具有超链接文本,如:- > 项目容器如下:- WebContent/WEB-INF/spring servlet。xml:- 我的问题:-当我从eclipse在tomcat服务器上运行这个项目时,索引文件显示得非常好。但由于索引文件中的文本与hello超链接。html我一直得到Http状态404。

  • 我只是在寻找澄清和原因。对于这段代码,为什么在公共测试中将“string”放在name、last和number前面不起作用呢?为什么我必须在构造函数外部用Private进行初始化?