SimpleTest 概述

原文链接http://drupal.org/node/394888

测试方法

Drupal测试更关注于功能测试(functional testing)而不是单元(unit testing)测试。也就是说,测试是对接口整体进行的,而不是针对个别模块功能或几段代码的测试。Drupal关注功能测试因为这样可以使Drupal开发更为有效。它至少和单元测试一样有效。测试框架是以功能测试为导向的,本小结重点讲述如何进行功能测试。

建立独立的测试环境

测试框架会自动为每次测试实例产生一个独立的测试环境。即每次会创建一个独立的文件夹目录和一套完全独立的数据库表格。Drupal安装在该环境中进行测试。这样保证了每次测试都是干净的环境,不可能和其他测试混淆。开发者也不需要每次测试后清理环境。
建立独立的测试环境是必要的,它保证了每次测试实例都是初始化的。还有在本地开发环境中做的任何改变都不会带入到该测试环境中。每个测试都要经过必要的安装配置(如:创建内容、用户等)

测试实例布局

每一个测试实例只能用一个setup()和一个tearDown()来实现。这就是说需要启用相同模块组及测试相同功能的所有测试要归并到一个测试组中。不同安装的测试实例要分开,但是都保存在同一个测试文件中。

测试文件位置

对一个模块的所有测试应该统一存放到该模块目录下的测试文件中。文件名格式为modulename.test。比如:节点模块的测试文件为: modules/node/node.test。如果像测试模块需要其他测试文件,要放到测试目录下,则该测试目录也应该放到该模块的目录下。

运行测试

测试系统提供了两种运行方法:web接口方法和命令行脚本方法。Web接口可以在站点构建(site building)菜单下的admin/build/testing中找到((Drupal6版本)。或者配置菜单(configuration)下的admin/config/development/test下( Drupal7 版本)。勾选需要测试的选项,然后点击运行按钮。 在页面下方会有一个进度条来显示完成的百分比和运行情况。
如果要用命令行脚本形式,则在scripts目录下有个名叫run-test.sh的脚本。详细的方法可以参加相关文档,或者在console上直接运行./scripts/run-test.sh.