voceconnect / wp-qa-suite
安装用于基本质量检查和WordPress项目的测试脚本和命令
Requires
This package is not auto-updated.
Last update: 2024-09-24 07:17:06 UTC
README
一套脚本,便于向指定的WordPress项目主题或插件中添加语法检查、单元测试和代码嗅探。
wp-qa-suite
为项目提供了一种一致的方式,包括持续集成功能,类似于Travis CI,而无需编写BASH语句。由于 wp-qa-suite
可以通过Composer安装,这使得为多个项目更新 wp-qa-suite
变得容易。
设置
- 添加一个
composer.json
文件来安装wp-qa-suite
,示例
{
"name": "you/your-wordpress-plugin",
"description": "A WordPress plugin to illustrate how to use wp-qa-suite...",
"license": "GPLv2+",
"repositories": [
{
"type": "git",
"url": "https://github.com/voceconnect/wp-qa-suite.git"
}
],
"require-dev": {
"voceconnect/wp-qa-suite": "~1.0"
},
"bin": [
"bin/wp-qa-syntax",
"bin/wp-qa-phpunit",
"bin/wp-qa-codesniff"
]
}
- 执行
composer install --dev
脚本
bin/wp-qa-codesniff
从项目的根目录读取 phpcs.ruleset.xml
并使用 git ls-tree
对项目中的PHP文件执行 phpcs
。已安装并添加 WordPress-Coding-Standards/WordPress-Coding-Standards
到 phpcs
的 installed_paths
配置中。
bin/wp-qa-phpunit
安装最新版或指定版本的WordPress、WordPress测试套件、设置数据库并执行 phpunit --configuration phpunit.xml
。设置从项目根目录中的 phpunit.xml
读取。
参数:
wp_version
- (必需)要测试的WordPress版本,例如3.9.2
、3.8.4
等,或latest
。DB_USER
- (可选,默认:travis)连接到MySQL时使用的用户名DB_PASS
- (可选,默认:none)用于连接到MySQL的DB_USER
的密码DB_NAME
- (可选,默认:wp_test)用于测试的MySQL数据库名称DB_HOST
- (可选,默认:localhost)运行MySQL实例的主机以连接到
bin/wp-qa-syntax
对项目中的所有PHP文件执行语法检查。由于使用了 git ls-tree
,脚本将只扫描项目中的文件,而不会扫描通过Composer安装的依赖项。
与Travis CI集成
示例 .travis.yml
文件
---
language: php
php:
- 5.5
- 5.4
env:
- WP_VERSION=latest
before_script:
- composer install --dev
script:
- vendor/bin/wp-qa-syntax
- vendor/bin/wp-qa-phpunit $WP_VERSION
.travis.yml
文件指定了在Travis CI中应该如何测试应用程序。
在这个存储库中的示例中,我们想要针对PHP版本 5.4
和 5.5
进行测试
php:
- 5.5
- 5.4
我们还可以通过指定环境变量 WP_VERSION
来针对不同的WordPress版本进行测试。将 WP_VERSION
环境变量传递给 wp-qa-phpunit
脚本,并使用它来检索最新版或指定版本的WordPress。
env:
- WP_VERSION=latest
.travis.yml
文件的 before_script
部分用于“设置”或“准备”测试环境,在本例中用于安装Composer依赖项。
before_script:
- composer install --dev
.travis.yml
文件的 script
部分指定了构成“测试”或“构建”的执行内容。如果这些命令返回的退出状态不等于0,则导致构建“失败”。
script:
- vendor/bin/wp-qa-syntax
- vendor/bin/wp-qa-phpunit $WP_VERSION
在这个示例中,我们想要执行所有PHP文件的语法检查,然后执行PHP单元测试。