rosio/wordpress-testing-harness

此包的最新版本(v1.1.1)没有可用的许可信息。

使使用WordPress和Composer测试插件和主题变得更加容易

v1.1.1 2014-06-11 22:50 UTC

This package is not auto-updated.

Last update: 2024-09-24 01:41:07 UTC


README

这个库旨在通过PHPUnit更容易地测试WordPress运行时的插件和主题。
这基本上是对kurtpayne/wordpress-unit-tests的重新编写。

用法

  1. 将此库、您的测试库以及您选择的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版本),但建议添加一个以方便本地测试。

  2. 配置您的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>
    
  3. 配置您的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';
  4. 编写您的第一个测试!

    <?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());
    	}
    }