自动化测试

0条评论

自动化测试就是在一定环境下运行所有或部分的测试案例的操作,测试案例会自动逐个运行,而且系统会综合测试结果。创建测试套件有多种途径,但若不手动启动测试套件,它仍不能应用到所运行的系统上。这里所说的自动化仅意味着你无需手动运行每一个案例,测试套件(testing suites)在启动后能自己运行。

Automattic WordPress自动测试是WordPress官方权威的测试套件。下载的唯一方式就是通过SVN,目前尚未开发针对测试的bug追踪系统。

基于Automattic的WordPress测试,还有另外一个测试工具,即WPTests,它可以查看基于其服务器配置的测试结果。WPTests 库也只有通过SVN才能下载。

Automattic 的WordPress自动测试使用的并非单元测试案例,因此也就无需制作模型了。这就可以在WordPress执行期间测试所有需测试项,就像在线测试一样。但需注意的是,要避免在并不想删除的网站上运行Automattic 的WordPress测试。WordPress测试会删除以前的所有数据库,测试运行后,它会创建一个专有的数据库。

本章节包括四个部分:

  1. 使用Automattic 的WordPress测试
  2. 使用WPTests测试库和网站
  3. 编写测试案例
  4. 提交测试案例

Automattic WordPress 测试

下载

首先,请下载 Subversion。此外,还需拥有一个空白可用的MySQL数据库。如果没有,现在就创建一个吧,但不要在其中写入任何内容。

http://svn.automattic.com/wordpress-tests/ 查看最近测试套件。

配置

  1. 在根文件夹中,把wp-config-sample.php复制到 wp-config.php
  2. 在wp-config.php中添加数据库名称,用户名和密码

直接访问WordPress安装文件并运行安装,可能会更容易些,这样也就创建了wp-config文件。然后,你可把此文件复制到其下的目录并运行测试。Automattic 的WordPress测试会在wp-test.php所在目录寻找wp-config.php文件,这也会防止wp-cron.php文件出现错误,因为它在以上目录中并不能搜索到wp-config.php文件。

运行测试

wp-test.php将首先启动自动测试套件。你可控制运行的测试选项及自动测试套件如何运行。若不使用参数,所有的测试都将以默认设置运行。

运行所有测试的所需平均时间在2到7分钟之间。这是对于当前的399项测试案例来说的,当案例数量增加时,为了充分运行所有案例,测试时间也会变长。

Windows用户须知:wp-test.php使用了getopt()函数,而Windows下PHP 5.3之前的版本不支持这个函数,在Windows上使用这个命令行必须等到PHP 5.3面世之后,当然,也可作些许更改以使其正常运行。

在命令行 输入php wp-test.php就可运行测试。

参数

  • -v : 输入 php wptests.php -v mu就可运行WordPress Mu
  • -t :  用来选择要运行的测试,这是类名,即测试案例的测试套件
  • -r : 即要测试的WordPress目录。在其它区域创建自定义补丁就可不必检查多个Automattic WordPress测试库以选择需测试的补丁。
  • -s : 此参数会跳过已知bug。
  • -f : 此参数会强制跳过已知bug。

以上前三个参数后面需要值,最后两个仅需输入参数就可以了。所有参数都是可选的。

示例

例如,如果要运行插件API行为测试套件,就需要输入以下命令行:

php wp-test.php -t WPTestActions  

若要跳过已知bug,可输入以下内容:

php wp-test.php -s  

若要强制跳过,请输入:

php wp-test.php -s -f  

Automattic WordPress 测试工具

WP测试网站已创建,它每小时会自动运行两分钟,因此它也提供了自2008年3月17日以来的测试历史记录,这就使得用户可以查看测试失败升降图。由于它并不跟踪WordPress Subversion更改,因此它只会显示已失败的测试及存在的错误。

WPTests网站有两部分内容。主页显示了最新可运行的测试及上次测试时间。如果测试时间超过一个半小时,就可以判断软件出现错误了(因为如果是网站,这表明整个网站已经瘫痪了。)

第二部分是测试运行记录,你可查看较新的测试运行以了解测试结果。

测试库位于[1],它要求使用SVN。

在本地机上运行 WPTests工具的其它配置要求是要具有WAMP, Apache, PHP, 和MySQL。如果你安装了最新版本的WAMP,那么你还需启用PDO_SQLite模块,因为测试工具需要使用这个模块,而默认情况下它并未启用。

编写测试案例

测试案例位于wp-testcase子目录。默认情况下,测试案例都在此目录中。

扩展WPTestCase类以确保测试可运行。可参考当前的测试代码或阅读PHPUnit Pocket Guide

提交测试案例

测试案例应提交给Automattic的Alex Shiels 。可以通过他的博客或Threshold State网站联系他。如果案例是建立在ticket之上并需要把测试案例或测试套件提供给Alex,可把案例放到WordPress Trac上。

Alex一般在3到7天内会收到并查看测试案例。