damianlewis / oc-octobertesting-plugin
为October CMS启用Laravel的测试框架
v1.0.1
2019-10-15 12:44 UTC
Requires
- php: >=7.0
- composer/installers: ~1.0
- laravel/dusk: ~2.0
- october/system: >=1.0.420
This package is auto-updated.
Last update: 2024-09-16 00:17:33 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
的对象。要提供默认/管理员用户账户,可以在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' ]);