damianlewis / octobertesting-plugin
Requires
- php: >=7.0
- composer/installers: ~1.0
- laravel/dusk: ~2.0
- october/system: >=1.0.420
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
身份验证
要使用 login
和 loginAs
身份验证方法,期望一个包含用户 login
和 password
的对象。要提供默认的/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' ]);