0x6d617474/wp-testing

此包已被弃用,不再维护。未建议替代包。
此包最新版本(1.0.1)的许可证信息不可用。

WordPress 测试库

1.0.1 2017-10-02 14:41 UTC

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文件中,只有autoloadsuites键被定义。其余值由库定义并在运行时传递。

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常量,您可以在测试套件运行期间使用此常量在您的代码中添加/删除行为。