protonemedia / laravel-minio-testing-tools
这是我创建的包laravel-minio-testing-tools
1.4.0
2024-03-12 11:42 UTC
Requires
- php: ^8.2|^8.3
- guzzlehttp/guzzle: ^7.4
- illuminate/contracts: ^10.0|^11.0
- spatie/laravel-package-tools: ^1.9.2
- spatie/temporary-directory: ^2.1
Requires (Dev)
- nunomaduro/collision: ^7.0|^8.0
- orchestra/testbench: ^8.0|^9.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpunit/phpunit: ^10.4
This package is auto-updated.
Last update: 2024-09-20 14:04:42 UTC
README
此包提供了一组特质,用于在MinIO S3服务器上运行您的测试。
赞助我们
❤️ 我们自豪地通过开发Laravel包并将其免费提供给社区来支持社区。如果此包为您节省了时间,或者您在专业上依赖它,请考虑赞助维护和开发,并查看我们的最新高级包:Inertia Table。跟踪问题和拉取请求需要时间,但我们很高兴提供帮助!
特性
- 为您的测试启动并配置MinIO服务器。
- 更新
filesystems
磁盘配置。 - 更新和恢复
.env
文件。 - 与Laravel Dusk兼容。
- 在GitHub Actions上运行。
- 与Laravel 10兼容。
- 需要PHP 8.1或更高版本。
安装
确保您已下载适用于您的操作系统的MinIO服务器和客户端。
您可以通过Composer安装此包
composer require protonemedia/laravel-minio-testing-tools --dev
将特质添加到您的测试中,并添加bootUsesMinIOServer
方法
<?php namespace Tests\Browser; use Illuminate\Foundation\Testing\DatabaseMigrations; use ProtoneMedia\LaravelMinioTestingTools\UsesMinIOServer; use Tests\DuskTestCase; class UploadVideoTest extends DuskTestCase { use DatabaseMigrations; use UsesMinIOServer; protected function setUp(): void { parent::setUp(); $this->bootUsesMinIOServer(); } /** @test */ public function it_can_upload_a_video_using_multipart_upload() { } }
就这些!
GitHub Actions
最简单的方法是在测试运行之前下载MinIO服务器和客户端。
jobs: test: steps: - uses: actions/checkout@v2 - name: Download MinIO S3 server and client run: | wget https://dl.minio.io/server/minio/release/linux-amd64/minio -q -P /usr/local/bin/ wget https://dl.minio.io/client/mc/release/linux-amd64/mc -q -P /usr/local/bin/ chmod +x /usr/local/bin/minio chmod +x /usr/local/bin/mc minio --version mc --version
如果您正在使用php artisan serve
,请确保不要使用--no-reload
标志,因为.env
文件将实时更改。
可选地,如果您希望在测试套件中实现持久存储,您可以在测试运行之前手动启动服务器。
jobs: test: steps: - uses: actions/checkout@v2 - name: Download MinIO S3 server and client run: | wget https://dl.minio.io/server/minio/release/linux-amd64/minio -q -P /usr/local/bin/ wget https://dl.minio.io/client/mc/release/linux-amd64/mc -q -P /usr/local/bin/ chmod +x /usr/local/bin/minio chmod +x /usr/local/bin/mc minio --version mc --version - name: Run MinIO S3 server run: | mkdir ~/s3 sudo minio server ~/s3 --json > minio-log.json & - name: Configure MinIO S3 run: | mc config host add local http://127.0.0.1:9000 minioadmin minioadmin mc admin user add local user password mc admin policy set local readwrite user=user mc mb local/bucket-name --region=eu-west-1 - name: Upload Minio Logs (optional) if: failure() uses: actions/upload-artifact@v2 with: name: minio path: minio-log.json
在这种情况下,您还需要提供包含MinIO配置的环境文件。这使得配置在运行Laravel Dusk时也可由浏览器会话访问。
AWS_ACCESS_KEY_ID=user AWS_SECRET_ACCESS_KEY=password AWS_DEFAULT_REGION=eu-west-1 AWS_BUCKET=bucket-name AWS_URL=http://127.0.0.1:9000 AWS_ENDPOINT=http://127.0.0.1:9000 AWS_USE_PATH_STYLE_ENDPOINT=true
测试
composer test
变更日志
有关最近更改的更多信息,请参阅CHANGELOG。
贡献
有关详细信息,请参阅CONTRIBUTING。
其他Laravel包
Inertia Table
:Inertia.js的终极表格,具有内置查询构建器。Laravel Blade On Demand
:用于在内存中编译Blade模板的Laravel包。Laravel Cross Eloquent Search
:用于在多个Eloquent模型中搜索的Laravel包。Laravel Eloquent Scope as Select
:停止在PHP中重复Eloquent查询作用域和约束。此包允许您通过将其作为子查询添加来重用查询作用域和约束。Laravel FFMpeg
:此包为Laravel提供了FFmpeg的集成。文件的存储由Laravel的文件系统处理。Laravel MinIO Testing Tools
:在MinIO S3服务器上运行您的测试。Laravel Mixins
:Laravel好帮手的集合。Laravel Paddle
:支持webhooks/events的Paddle.com API集成。Laravel Task Runner
:编写Shell脚本,就像Blade组件一样,然后在本地或远程服务器上运行。Laravel Verify New Email
:此包添加了对验证新电子邮件地址的支持:当用户更新其电子邮件地址时,新地址将被验证,直到旧地址被替换。Laravel XSS Protection
:用于防止跨站脚本(XSS)的Laravel中间件。它清理请求输入,并可以清理Blade输出语句。
安全
如果您发现任何与安全相关的问题,请通过电子邮件发送到code@protone.media
,而不是使用问题跟踪器。请不要发送任何问题,如果您有问题,请创建一个问题。
鸣谢
许可协议
MIT许可(MIT)。有关更多信息,请参阅许可文件。