rosio / wordpress-testing-harness
此包的最新版本(v1.1.1)没有可用的许可信息。
使使用WordPress和Composer测试插件和主题变得更加容易
v1.1.1
2014-06-11 22:50 UTC
Requires
Suggests
- johnpbloch/wordpress: Good WordPress copy to work off of. This library is preconfigured to work with this package.
- mockery/mockery: Simplifies the mocking of objects
This package is not auto-updated.
Last update: 2024-09-24 01:41:07 UTC
README
这个库旨在通过PHPUnit更容易地测试WordPress运行时的插件和主题。
这基本上是对kurtpayne/wordpress-unit-tests的重新编写。
用法
-
将此库、您的测试库以及您选择的WordPress部署添加到您的插件或主题的composer.php文件中
"autoload-dev": { "psr-4": { "Plugin\\SomePlugin\\": "tests/" } }, "require-dev": { "phpunit/phpunit": "~3.7", "rosio/wordpress-testing-harness": "dev-master", "johnpbloch/wordpress": "~3.8" },
实际上,您不必包含WordPress,而是在测试期间将其下载到正确的文件夹(这意味着您可以轻松地测试多个WordPress版本),但建议添加一个以方便本地测试。
-
配置您的phpunit.xml.dist文件
<?xml version="1.0" encoding="UTF-8"?> <phpunit backupGlobals="false" beStrictAboutTestSize="true" backupStaticAttributes="false" bootstrap="tests/bootstrap.php" colors="true" convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" processIsolation="false" stopOnFailure="false" syntaxCheck="false" > <testsuites> <testsuite name="Application Test Suite"> <directory suffix="Test.php">./tests/</directory> </testsuite> </testsuites> </phpunit>
-
配置您的phpunit的tests/bootstrap.php文件
<?php require_once __DIR__ . '/../vendor/autoload.php'; $bootstrapper = new Rosio\WordPressTestingHarness\Bootstrapper(array( 'bootstrap-path' => __FILE__, 'db-name' => 'wp_test', 'db-user' => 'root', 'db-pass' => 'root', 'db-host' => 'localhost', 'db-prefix' => 'wptests_', 'db-charset' => '', 'db-collate' => '', 'wplang' => '', 'wordpress-path' => __DIR__ . '/../wordpress', 'domain' => 'wp.localhost', 'admin-email' => 'admin@example.org', 'blog-title' => 'Tests', 'admin-password' => 'admin', 'always-reinstall' => true, 'php-binary' => 'php', 'testdata-path' => __DIR__ . '/../data', )); // Require in plugin require __DIR__ . '/../index.php';
-
编写您的第一个测试!
<?php namespace Plugin\SomePlugin; use WP_UnitTestCase; use \Mockery as m; class MainPluginTest extends WP_UnitTestCase { public function setUp() { } public function tearDown() { m::close(); } public function testPluginIsCreated() { $this->assertInstanceOf('Plugin\SomePlugin\MainPlugin', getSomePlugin()); } }