pragmarx / tddd
自托管 TDD 仪表板 & 测试监视器
Requires
- php: >=7.0
- doctrine/dbal: ~2.5
- 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/process: ~3
- symfony/yaml: ~3.2
Requires (Dev)
- orchestra/testbench: ~3.5
- phpunit/phpunit: ^6.5
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
负责从运行队列中获取测试,执行它并记录结果。测试器将只执行启用的测试。这是如何运行它的
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
示例 & 启动应用程序
有关许多示例,请参阅 此启动应用程序,它还将帮助您为测试创建独立的仪表板。
长版本
使用 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
文件
贡献
欢迎提交拉取请求和问题。