lavatech / tddd
Requires
- php: >=7.0
- doctrine/dbal: ~2
- guzzlehttp/guzzle: ~6.3
- jolicode/jolinotif: ~1.2
- laravel/framework: >=5.5
- pragmarx/support: ~0.8
- pusher/pusher-php-server: ~3.0
- sensiolabs/ansi-to-html: ~1
- symfony/console: ~4
- symfony/process: ~4
- symfony/yaml: ~4
Requires (Dev)
- orchestra/testbench: ~3.7.4
- phpunit/phpunit: ^7.4.0
This package is auto-updated.
Last update: 2024-09-19 02:41:50 UTC
README
自托管的 TDD 仪表板 & 测试监视器
这是什么?
TDD Dashboard 是一个应用程序(作为 Laravel PHP 包构建),用于在开发过程中监视和运行所有测试。它支持任何在终端上工作的测试框架,并带有一些预配置的测试器(PHPUnit、phpspec、behat、Jest、AVA...),但您也可以轻松添加自己的,只需告诉它可执行文件的位置即可。它还显示测试的进度,让您运行单个测试或所有测试,并打开您喜欢的代码编辑器(PHPStorm、VSCode、Sublime Text 等),直接跳转到测试失败行。如果您的测试框架生成截图,它也能在日志页面中显示,就像您在终端中习惯看到的那样,所有红色和绿色。
它使用 Laravel 作为引擎,但支持(并已与许多语言、框架和测试框架测试过)
- PHPUnit
- Laravel & Laravel Dusk
- Codeception
- phpspec
- Behat
- atoum
- Jest
- AVA
- React
- Ruby on Rails
- Nette Tester
- Symfony
功能
- 项目列表:点击项目链接查看所有测试。
- 直接在您的源代码编辑器中打开文件(PHPStorm、Sublime Text...)。
- 带有源代码链接的错误日志,直接跳转到源代码中的错误行。
- 启用/禁用测试。一旦禁用,如果监视器检测到资源发生变化,则该测试将不会触发。
- 实时测试状态:“空闲”、“运行中”、“排队”、“正常”和“失败”。
- “显示”按钮,显示失败测试的错误日志。
- 高度可配置,监视任何内容并测试任何内容!
视频
截图
仪表板
错误日志
命令行界面
Artisan 命令 Watcher 和 Tester 分别负责监视资源和执行测试。
Watcher
跟踪您的文件并在项目或测试文件更改时对测试进行排队。如果项目文件更改,它将对所有测试进行排队,如果测试文件更改,它将仅对该特定测试进行排队。这是运行它的方法
php artisan tddd:watch
Tester
负责从运行队列中提取测试、执行它并记录结果。Tester 只会执行启用的测试。这是运行它的方法
php artisan tddd:test
通知
它使用 JoliNotif,因此如果它在 macOS 上不起作用,您可以尝试安装 terminal-notifier
brew install terminal-notifier
测试框架兼容性
此包已测试并且已知与以下兼容
安装
TL;DR
laravel new tddd
cd tddd
composer require pragmarx/tddd
php artisan vendor:publish --provider="PragmaRX\Tddd\Package\ServiceProvider"
valet link tddd
# configure database on your .env
php artisan migrate
php artisan tddd:watch & php artisan tddd:work &
open http://tddd.dev/tests-watcher/dashboard
示例 & Starter App
有关大量示例,请检查 此启动应用程序,它还将帮助您为测试创建独立的仪表板。
长版本
使用 Composer 引用它
composer require pragmarx/tddd
创建数据库,在您的 Laravel 应用程序中进行配置并迁移它
php artisan migrate
发布 CI 配置
在 Laravel 4.*
将服务提供者添加到您的 app/config/app.php
'PragmaRX\Tddd\Package\ServiceProvider',
php artisan config:publish pragmarx/tddd
在 Laravel 5.*
php artisan vendor:publish --provider="PragmaRX\Tddd\Package\ServiceProvider"
项目示例
Laravel Dusk
'project bar (dusk)' => [
'path' => $basePath,
'watch_folders' => [
'app',
'tests/Browser'
],
'exclude' => [
'tests/Browser/console/',
'tests/Browser/screenshots/',
],
'depends' => [],
'tests_path' => 'tests',
'suites' => [
'browser' => [
'tester' => 'dusk',
'tests_path' => 'Browser',
'command_options' => '',
'file_mask' => '*Test.php',
'retries' => 0,
],
],
],
故障排除
测试在终端中运行良好但在仪表板中失败?
您首先必须记住它们是在隔离状态下执行的,并且环境也不完全相同,因此像缓存和会话这样的东西可能会影响您的结果。
要求
- 支持 Laravel 4.1+ 或 5
- 支持 PHP 5.3.7+
作者
许可协议
Laravel Ci 采用 BSD 3-Clause 许可协议 - 详细信息请参阅 LICENSE
文件
贡献
欢迎提交 pull request 和 issues。