10up/wp-codeception

此包已被弃用且不再维护。没有推荐替代包。
此包最新版本(1.0.3)没有可用的许可信息。

WordPress 插件,它集成了 Codeception PHP 测试框架,并允许您通过 WP CLI 为 WordPress 编写和运行 Codeception 测试。

安装次数 4,213

依赖项: 0

推荐者: 0

安全: 0

星标: 102

关注者: 121

分支: 11

开放问题: 10

类型:wordpress-plugin

1.0.3 2015-11-04 21:57 UTC

README

这是一个 WordPress 插件,它集成了 Codeception PHP 测试框架,并允许您通过 WP CLI 为 WordPress 编写和运行 Codeception 测试。

Support Level

我们正在努力支持所有 Codeception 命令。如果您发现我们尚未包含的命令,请提交一个 Pull Request

安装

下载最新版本并解压,或使用 Git 将存储库克隆到 WordPress 安装中的新目录 wp-content/plugins/wp-codeception

安装所需的 node 模块和 composer 依赖项

我们将在 VVV 中运行我们的命令,因为那里已经为我们安装了 WP CLI、Node 和 Composer。

$ vagrant up
$ vagrant ssh
$ sudo apt-get install openjdk-7-jre-headless
$ cd /srv/www/yoursite/htdocs/wp-content/plugins/wp-codeception
$ composer install
$ wp plugin activate wp-codeception

之后,您将在 plugins/wp-codeception 目录中有一个新的 vendor 目录,其中包含我们依赖的所有代码库。

作为 composer 依赖项安装

有另一种安装此插件的方法。您可以将它添加为项目的 composer 依赖项。为此,请在终端运行以下命令

$ composer require 10up/wp-codeception

此命令将为您的项目安装插件及其所有依赖项。请注意,如果您已经在项目中使用了 composer/installers 依赖项,则 wp-codeception 将安装到 <PROJECT_DIR>/wp-content/plugins/wp-codeception/ 文件夹中。这是因为 wp-codeceptionwordpress-plugin 类型,将被 composer/installers 适当处理(阅读其文档以获取更多信息)。

如果您想将其作为依赖项添加到插件或主题中,您需要更新您的 composer.json 文件并告知其安装 wp-codeception 的位置。您可以通过提供如下片段中的 installer-paths 指令来实现。

{
    ...,
    "extra": {
        "installer-paths": {
            "vendor/{$name}/": ["type:wordpress-plugin"]
        }
    },
    ...
}

现在,composer/installers 将知道将 WordPress 插件安装到 vendor 文件夹中。您需要执行的最终步骤是更新您的 autoload 部分,并将 wp-codeception.php 文件添加到自动加载文件列表中。

{
    ...,
    "autoload": {
        "psr-X": {
            ...
        },
        "files": [
            ...,
            "vendor/wp-codeception/wp-codeception.php"
        ]
    },
    ...
}

安装测试套件

有关更多信息,请参阅 Codeception 引导文档

# You'll create the test suite in your own plugin or theme directory..
$ cd /srv/www/yoursite/htdocs/wp-content/{your plugin or theme directory}
$ wp codeception bootstrap

之后,您将在插件或主题目录中有一个新的 tests 目录。这是您的新测试套件,您将在这里编写所有测试。

编写测试

您可以使用三种Codeception测试框架中的任何一种来编写测试:[接受](http://codeception.com/docs/03-AcceptanceTests)、[功能](http://codeception.com/docs/04-FunctionalTests)和[单元](http://codeception.com/docs/05-UnitTests)测试。如果在新的tests目录中查看,您将看到三个配置文件;每个测试框架一个(acceptance.suite.yml、functional.suite.yml、unit.suite.yml)。请根据需要编辑这些文件。

生成第一个测试

# You should be in the plugin or theme directory where you ran the bootstrap
$ wp codeception generate-(cept|cest) (acceptance|functional|unit) MyTestName

# Example
$ wp codeception generate-cept acceptance LoginTest

之后,您将在插件或主题目录中有一个新文件tests/acceptance/LoginTest.php,您可以在这里编写第一个测试。记住,任何Codeception测试都可以在这里运行!例如,您可以使用Codeception文档中提到的接受测试示例。同样,这也适用于功能测试单元测试

示例:编写登录接受测试

<?php

// Make sure you've added your site URL to acceptance.suite.yml
// @see http://codeception.com/docs/03-AcceptanceTests#PHP-Browser
$I = new AcceptanceTester( $scenario );
$I->wantTo( 'Ensure WordPress Login Works' );

// Let's start on the login page
$I->amOnPage( wp_login_url() );

// Populate the login form's user id field
$I->fillField( 'input#user_login', 'YourUsername' );

// Popupate the login form's password field
$I->fillField( 'input#user_pass', 'YourPassword' );

// Submit the login form
$I->click( 'Log In' );

// Validate the successful loading of the Dashboard
$I->see( 'Dashboard' );

运行您的测试

现在您已经编写了一些测试,是时候运行它们了!但首先...

Selenium

如果您创建了任何浏览器自动化/接受测试,您需要开启Selenium,同样,您可能希望测试运行完毕后关闭Selenium。

# You can run these commands from anywhere in your WordPress install
$ wp selenium start

# Stop Selenium when you're through
$ wp selenium stop

运行

您将使用run命令从您的插件或主题目录(您在那里运行了引导)中执行测试。我们已经实现了大多数Codeception 'run'命令的参数,但如果您发现我们遗漏了某些参数,请提交Pull Request

# You should be in the plugin or theme directory where you ran the bootstrap
$ wp codeception run

示例:运行我们的登录测试

# You should be in the plugin or theme directory where you ran the bootstrap
# Let's display verbose output
$ wp codeception run -vvv

Codeception PHP Testing Framework v2.0.11
Powered by PHPUnit 4.5.1 by Sebastian Bergmann and contributors.

  Rebuilding AcceptanceTester...

Acceptance-production Tests (1) ---------------------------------
Modules: WebDriver, WordPress, AcceptanceHelper
-----------------------------------------------------------------
Ensure WordPress Login Works (LoginTest)
Scenario:
* I am on page "http://site.com/wp-login.php"
* I fill field "input#user_login","YourUsername"
* I fill field "input#user_pass","YourPassword"
* I click "Login"
* I see "Dashboard"
 PASSED

支持级别

存档:此项目不再由10up维护。我们不再响应与安全问题无关的问题或Pull Requests。我们鼓励感兴趣的开发商fork此项目并使其成为自己的项目!

喜欢你所看到的吗?

68747470733a2f2f313075702e636f6d2f75706c6f6164732f323031362f31302f313075702d4769746875622d42616e6e65722e706e67