Cygwin下搭建WordPress插件的PHPUnit测试环境

Wed 29 July 2015 / In categories Testing

Cygwin, PHP, WordPress

推荐用apt-cyg来安装Cygwin下面的软件包。

假设你已经安装了PHP了,为了使用PHPUnit,最好装上下面的PHP扩展:

apt-cyg install php-mbstring
apt-cyg install php-phar
apt-cyg install subversion # 用于下载wordpre-tests代码

安装PHPUnit

不推荐用PEAR来安装PHPUnit,因为php.net channel上的PHPUnit页面显示其已经没人维护了。

根据PHPUnit官网的指示:

wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
mv phpunit.phar /usr/local/bin/phpunit
phpunit --version

如果显示类似下面的文字,说明安装PHPUnit成功了

PHPUnit 4.7.0 by Sebastian Bergmann and contributors.

安装WP-CLI

自己搭建和配置Wordpress的测试环境相当麻烦,WP-CLI可以帮你解决这个问题。

wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
wp --info

如果显示类似以下信息,说明安装成功:

PHP binary:     /usr/bin/php
PHP version:    5.6.11
php.ini used:   /etc/php5/php.ini
WP-CLI root dir:        phar://wp-cli.phar
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 0.19.2

搭建测试框架

假如WP的安装目录是/srv/www/htdocs/wordpress,我们要测试的插件叫example-plugin,那么:

cd /srv/www/htdocs/wordpress
wp scaffold plugin-tests example-plugin

可以看到,在example-plugin的目录下多了几个文件:

.travis.yml
        bin/install-wp-tests.sh
        phpunit.xml
        tests/test-sample.php

在当前目录执行

bash bin/install-wp-tests.sh wordpress_test root 'password' ''

rootpassword是mysql的用户名和密码,然后我们就可以执行phpunit命令看看测试结果了。

值得注意的是:

插件目录下必须有一个和目录名字一样的PHP文件,如example-plugin目录下必须有个叫example-plugin.php的文件作为入口文件。

参考:

  • Unit Tests for WordPress Plugins – An Introduction
  • * Automated Testing * https://codex.wordpress.org/Writing_a_Plugin * https://codex.wordpress.org/Developer_Documentation

    Load Disqus Comments