[Day 28] 使用ChromeDriver来做单元测试(一)

Laravel Dusk提供了一个自动化的测试API,
不用安装Selenium等软件,
直接用独立的ChromeDriver,
当然也是可以搭配Selenium或其他相关软件。

首先我们要先安装Laravel Dusk
composer require --dev laravel/dusk
https://ithelp.ithome.com.tw/upload/images/20210929/20105694vAcXCOjTdw.png

接下来执行dusk:install指令,
这个指令将会在tests资料夹底下建立一个Browser目录和一个范例
php artisan dusk:install
https://ithelp.ithome.com.tw/upload/images/20210929/20105694stvAUj6vA6.png

会自动产生一个范例
tests/Browser/ExampleTest.php

<?php

namespace Tests\Browser;

use Illuminate\Foundation\Testing\DatabaseMigrations;
use Laravel\Dusk\Browser;
use Tests\DuskTestCase;

class ExampleTest extends DuskTestCase
{
    /**
     * A basic browser test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
        $this->browse(function (Browser $browser) {
            $browser->visit('/')
                    ->assertSee('Laravel');
        });
    }
}

然後我们来执行范例看看
php artisan dusk
https://ithelp.ithome.com.tw/upload/images/20210929/20105694UgbdZh6Bwd.png

马上就跳错误了,
这是因为dusk会吃.env里面的APP_URL,
所以我们要把这个参数改成跟我们的网站设定值一样,
APP_URL=http://127.0.0.1:9654
再执行一次测试
php artisan dusk
https://ithelp.ithome.com.tw/upload/images/20210929/201056947Ve5PLZnOv.png

果然就成功了!
恭喜你这是我们完成的第一个使用ChromeDriver作的单元测试。

另外,如果上次测试失败,
可以执行指令只运行上次失败的测试
php artisan dusk:fails


<<:  Day 14 - UML x Interface — Portal

>>:  Day14 Android - Logcat(日志)

[Day27] Vue 3 - 方法

今天练习到 Vue 里面的 methods(方法),过去使用纯 JS 监听事件触发後,就会透过函式来...

Eloquent ORM - 多对多关联

接着要示范如何用 Eloquent 建立多对多关联的查询,目标帮目前的 Todo 建立 Tag 标签...

[Day29]C# 鸡础观念- 物件导向(oop)~介面(Interface)

书同文,车同轨, 听说召唤恶魔时,需要与恶魔签订契约, 契约内容双方都得遵守, C#也拥有跟类别签订...

在我的 iMac 上制作双系统的随身碟

用同一个硬碟外接盒,分别在不同的硬碟安装上 Windows 10 与 Clear Linux,在使用...

Rust-编辑器设定

如何设定开发环境这边使用VSCode来当开发工具 rustfmt 自动格式化 rustfmt是Rus...