stevebauman / laravel-husk
专为您的纯 JavaScript 应用程序提供的 Laravel Dusk 环境。
v1.1.0
2023-08-29 14:46 UTC
Requires
- php: ^8.0
- laravel-zero/framework: ^10.0
- nunomaduro/laravel-console-dusk: ^1.11
- nunomaduro/termwind: ^1.15
Requires (Dev)
- fakerphp/faker: ^1.23
- laravel/dusk: ^7.9
- mockery/mockery: ^1.6.6
- pestphp/pest: ^2.16
This package is auto-updated.
Last update: 2024-08-29 17:15:10 UTC
README
Laravel Husk 是一个轻量级的 Laravel Dusk 环境。
它允许您使用 Pest,通过 PHP 来测试您的 JavaScript 应用程序,而无需搭建整个 Laravel 应用程序。
示例
安装
在您的 JavaScript 应用程序文件夹内,运行以下命令以搭建 Laravel Husk 环境
注意:这将创建名为
browser
的文件夹,其中将包含您的 Laravel Husk 测试环境。
composer create-project stevebauman/laravel-husk browser
搭建测试环境后,您应该拥有以下文件夹结构;
javascript-app/
├── ...
└── browser/
├── bootstrap/
├── config/
├── storage/
│ ├── log/
│ ├── screenshots/
│ └── source/
└── tests/
├── ...
├── ExampleTest.php
├── DuskTestCase.php
└── Pages/
└── ExamplePage.php
然后,进入 browser
目录并运行以下命令以安装 Chrome 驱动器
php application dusk:chrome-driver --detect
使用方法
在运行 dusk 测试之前,请确保设置正确的基 URL,以确定您的 JavaScript 应用程序将从哪里提供
// tests/DuskTestCase.php protected function setUp(): void { parent::setUp(); $this->setupBrowser('https://127.0.0.1:3000'); }
设置基 URL 后,提供您的 JavaScript 应用程序
npm run dev
然后,在另一个终端中,进入 browser
目录
cd browser
并运行以下命令
重要:请确保您已通过
php application dusk:chrome-driver --detect
安装了 Chrome 驱动器
php application pest:dusk
参数
php application pest:dusk --order-by=random --filter="it can load"
注意:您也可以将以下 JSON 插入到
package.json
文件的scripts
部分中,以从根项目目录运行浏览器测试"scripts": { "test": "cd browser && php application pest:dusk" }npm run test
GitHub Actions
您可以使用以下 GitHub Action 作为模板来运行您的 Laravel Dusk 测试
name: run-tests on: push: pull_request: schedule: - cron: "0 0 * * *" jobs: run-tests: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: cache: "npm" - name: Install Javascript Dependencies run: npm install - name: Start JavaScript Application run: npm run dev & - name: Install Composer Dependencies working-directory: ./browser run: composer install --no-progress --prefer-dist --optimize-autoloader - name: Upgrade Chrome Driver working-directory: ./browser run: php application dusk:chrome-driver `/opt/google/chrome/chrome --version | cut -d " " -f3 | cut -d "." -f1` - name: Run Dusk Tests working-directory: ./browser run: php application pest:dusk - name: Upload Screenshots if: failure() uses: actions/upload-artifact@v2 with: name: screenshots path: browser/storage/screenshots - name: Upload Console Logs if: failure() uses: actions/upload-artifact@v2 with: name: console path: browser/storage/console