artofwp/wp-testing

WordPress插件和主题解耦测试框架。依赖PHPUnit。

dev-master 2016-05-12 15:52 UTC

This package is not auto-updated.

Last update: 2024-09-28 17:49:23 UTC


README

免责声明:该项目是实验性的。

这是官方WordPress测试工具的一个分支。此框架已适配用于Composer,因此支持自动加载。另一个变化是将WP单元测试用例从引导文件中解耦。这是好的,因为PHPUnit的工作方式,PHPUnit在启动时加载所有测试文件,这意味着WordPress安装和相关活动即使在不需要时也会运行。与WordPress Trac和相关标准WordPress测试套件相关的大部分代码也已删除。

它与默认的WordPress测试设置兼容。

如何使用

步骤 1

像往常一样设置WordPress测试环境。请参阅WordPress PHPUnit。您需要向运行程序提供WordPress和配置文件的路径。它不使用WP_TESTS_DIR环境变量。

步骤 2

使用Composer安装此框架。

步骤 3

项目根目录中创建一个phpunit.xml文件。下面的示例文件定义了PHPUnit应默认运行的3个测试套件。监听器用于为每个测试套件加载引导文件。

<phpunit
        bootstrap="tests/bootstrap.php"
        backupGlobals="false"
        colors="true"
        convertErrorsToExceptions="true"
        convertNoticesToExceptions="true"
        convertWarningsToExceptions="true"
	    >
    <testsuites>
        <testsuite name="unit">
            <directory prefix="" suffix="Test.php">./tests/unit</directory>
        </testsuite>
        <testsuite name="integration">
            <directory prefix="" suffix="Test.php">./tests/integration</directory>
        </testsuite>
        <testsuite name="acceptance">
            <directory prefix="" suffix="Test.php">./tests/acceptance</directory>
        </testsuite>
    </testsuites>
    <listeners>
        <listener class="\ArtOfWP\WP\Testing\BootstrapLoader"></listener>
    </listeners>
</phpunit>

在项目根目录中的tests目录创建一个bootstrap.php文件,指向Composer自动加载文件。

<?php
$root_dir=dirname(__DIR__);
require $root_dir . '/vendor/autoload.php';

为需要每个测试套件的引导创建一个引导。测试套件引导文件是可选的。

  • tests/bootstrap-unit.php
  • tests/bootstrap-integration.php
  • tests/bootstrap-acceptance.php
  • tests/unit/bootstrap.php
  • tests/integration/bootstrap.php
  • tests/acceptance/bootstrap.php

对于集成测试,以下将安装WordPress并激活插件。

<?php
use ArtOfWP\WP\Testing\WP_Bootstrap;
$GLOBALS['wp_tests_options'] = array(
    'active_plugins' => array(
        'my-plugin/my-plugin.php'
    )
);
(new WP_Bootstrap($wordpress_path, __DIR__ . '/wp-tests-config.php'))->run();

步骤 4

根据您的设置,只需在终端中输入phpunitvendor/bin/phpunit。要仅运行单元测试,请输入phpunit --testsuite unit