chadanuk/dusk-wordpress

WordPress 站点无头 Chromium 测试的 Laravel dusk

dev-master 2020-04-06 15:26 UTC

This package is auto-updated.

Last update: 2024-09-29 06:02:40 UTC


README

Laravel Dusk for WordPress (bedrock -https://roots.io/bedrock/)

安装

composer require chadanuk/dusk-wordpress
文件结构

我们建议添加以下文件结构

  • phpunit.xml
  • .env.dusk(包含测试数据库名称)
  • 测试
    • 浏览器
      • 控制台
      • 屏幕截图
        • ExampleTest.php
phpunit.xml
<?xml version="1.0" encoding="UTF-8"?>
<phpunit bootstrap="vendor/chadanuk/dusk-wordpress/bootstrap.php"
         backupGlobals="false"
         backupStaticAttributes="false"
         colors="true"
         verbose="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Dusk Wordpress Theme Test Suite">
            <directory>tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist>
            <directory suffix=".php">/</directory>
        </whitelist>
    </filter>
    <php>
        <env name="WP_ENV" value="testing"/>
        <env name="DB_NAME" value="database_name"/>
        <env name="DB_USER" value="root"/>
        <env name="DB_PASSWORD" value=""/>
        <env name="WP_THEME" value="theme_name"/>
        <const name="WP_INSTALLING" value="true"/>
    </php>
</phpunit>

编写测试

您可用的断言在 Laravel 网站上有文档说明(https://laravel.net.cn/docs/5.6/dusk#available-assertions

ExampleTest.php
<?php
namespace Tests\Browser;

use Chadanuk\DuskWordpressTests\Traits\WordpressPost;
use Chadanuk\DuskWordpressTests\TestCase as TestCase;

class ExampleTest extends TestCase
{
    /**
     * @test
     */
    public function can_see_home_page_title()
    {
        $postFactory = new \WP_UnitTest_Factory_For_Post();
        $postId = $postFactory->create_object([
            'post_title' => 'Home page title',
            'post_type' => 'page',
            'post_name' => 'home'
        ]);

        $this->browse(function ($browser) {
            $browser->visit('/')->screenshot('home')
                ->assertSee('Home page title');
        });
    }
}

运行测试

vendor/bin/phpunit tests/Browser/ExampleTest.php