0x6d617474 / wp-testing
WordPress 测试库
Requires
- php: >=5.6
- behat/behat: ^3.0
- behat/mink: ^1.7
- behat/mink-extension: ^2.2
- behat/mink-goutte-driver: *
- behat/mink-selenium2-driver: *
- phpunit/phpunit: ^5.7
Requires (Dev)
This package is not auto-updated.
Last update: 2024-03-25 04:10:02 UTC
README
这是一个简单的测试库,通过PHPUnit和Behat为您的WordPress包添加单元测试和集成测试。
安装
$ composer require 0x6d617474/wp-testing --dev
要求
以下内容是使用测试库的必要条件
- PHP v5.6+
- PhantomJS或Java运行时(用于集成测试)
- SVN
- WordPress环境
编写测试
在您的项目根目录下创建一个tests
目录,结构如下
/tests
|---- /behat
|---- /contexts
|---- FeatureContext.php
|---- /features
|---- /core
|---- example.feature
|---- /unit
|---- bootstrap.php
|---- ExampleTest.php
|---- TestCase.php
您可以在本项目中的tests
目录下找到示例。
您还需要在项目根目录下创建一个behat.yml
文件和一个phpunit.xml
文件。
您可以在本项目的根目录下找到示例。请注意,在behat.yml
文件中,只有autoload
和suites
键被定义。其余值由库定义并在运行时传递。
在tests/unit
目录下编写您的单元测试,在tests/behat/features/core
目录下编写您的集成测试。您可以通过在tests/behat/features
下创建新的文件夹并更新您的behat.yml
文件来创建额外的集成测试套件。示例behat.yml
文件中包含一个dev
套件。
运行测试
要运行单元测试,如果您已在本地上安装了PHPUnit,只需运行phpunit
,或者您也可以运行包含的vendor/bin/phpunit
。
要运行集成测试,运行vendor/bin/wp-behat [suite=core] [browser=phantomjs]
命令。
注意
一般情况下,不要在生产环境中运行此测试套件。它会对数据库做一些奇怪的操作,尽管它试图在完成后清理,但总会有意外发生。请勿冒险。
单元测试
单元测试使用官方WordPress测试套件库运行,这些库来自develop.svn.wordpress.org
。使用与您的WordPress安装相同的数据库运行测试,但使用以wptests_
为前缀的临时表。测试套件完成后会清理这些表。不要使用wptests_
前缀来标记您的真实表,否则它们也会被删除。
集成测试
默认情况下,库将通过PhantomJS
运行core
测试套件。您可以通过传递参数来更改此行为(见上面)。例如,要使用Chrome运行dev
测试套件,您将调用vendor/bin/wp-behat dev chrome
。
在运行测试之前,将在您的WordPress安装中创建一个Must Use
插件,并在之后删除该插件。此插件设置_WP_TESTING_ENVIRONMENT
常量,您可以在测试套件运行期间使用此常量在您的代码中添加/删除行为。