pragmarx / ci
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仪表板是一个应用程序(作为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命令 监视器 和 测试器 分别负责监视资源和触发测试。
监视器
跟踪您的文件,并在项目或测试文件更改时对您的测试进行排队。如果项目文件更改,它将排队所有测试;如果测试文件更改,它只会排队那个特定的测试。这是运行它的方法
php artisan tddd:watch
测试器
负责从运行队列中取出测试,执行它并记录结果。测试人员只会执行启用的测试。以下是运行它的方法
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
文件以获取详细信息
贡献
欢迎拉取请求和问题。