damianlewis/octobertesting-plugin

此包已被废弃,不再维护。作者建议使用damianlewis/oc-octobertesting-plugin包。

启用 October CMS 的 Laravel 测试框架

v1.0.1 2019-10-15 12:44 UTC

This package is auto-updated.

Last update: 2019-10-15 13:07:30 UTC


README

在 October CMS 中启用 Laravel 测试框架的使用。

使用

安装

通过 Composer 安装

composer require damianlewis/oc-octobertesting-plugin --dev

插件功能及单元测试

为了测试插件,在插件基本目录内创建一个 tests 文件夹,并将 phpunit.xml 文件复制到此位置,例如,/plugins/acme/blog/tests/phpunit.xml。为功能测试和单元测试创建子文件夹,例如,/plugins/acme/blog/tests/feature//plugins/acme/blog/tests/unit/。然后在测试文件夹中,创建测试,遵循用于 Laravel 测试 的原则。在 phpunit.xml 文件中已配置功能测试和单元测试的测试套件。

在创建测试时,使用替代的 Tests\PluginTestCase 类。此替代类不使用内存中的数据库,允许您选择您希望用于测试的数据库。以下是一个示例。

<?php

namespace Acme\Blog\Tests\Feature;

use Tests\PluginTestCase;

class ExampleTest extends PluginTestCase
{
    /**
     * A basic test example.
     *
     * @return void
     */
    public function testBasicTest()
    {
        $response = $this->get('/');

        $response->assertStatus(200);
    }
}

Laravel Dusk

要使用 Laravel Dusk 与 OctoberCMS,运行 dusk:install Artisan 命令

php artisan dusk:install

然后像使用 Laravel 一样使用 Dusk,请参阅 Laravel Dusk。例如,要从 CLI 运行测试,请使用 dusk Artisan 命令

php artisan dusk

身份验证

要使用 loginloginAs 身份验证方法,期望一个包含用户 loginpassword 的对象。要提供默认的/admin用户账户,可以在 Tests\DuskTestCase 类中覆盖 user 方法,如下所示

<?php

namespace Tests;

use Laravel\Dusk\TestCase as BaseTestCase;
use Facebook\WebDriver\Chrome\ChromeOptions;
use Facebook\WebDriver\Remote\RemoteWebDriver;
use Facebook\WebDriver\Remote\DesiredCapabilities;

abstract class DuskTestCase extends BaseTestCase
{
    use CreatesApplication;
    
    ...
    
    protected function user()
    {
        return (object)[
            'login' => 'admin',
            'password' => 'admin'
        ];
    }
}

屏幕截图

要创建浏览器屏幕截图,请将 --window-size 参数添加到 ChromeOptions->addArguments 方法中,如下所示

$options = (new ChromeOptions)->addArguments([
    '--disable-gpu',
    '--window-size=1280,1024',
    '--headless'
]);