lavatech/tddd

自托管的 TDD 仪表板 & 测试监视器

dev-master 2018-10-18 13:20 UTC

This package is auto-updated.

Last update: 2024-09-19 02:41:50 UTC


README

自托管的 TDD 仪表板 & 测试监视器

Latest Stable Version License Downloads Code Quality Build StyleCI

这是什么?

TDD Dashboard 是一个应用程序(作为 Laravel PHP 包构建),用于在开发过程中监视和运行所有测试。它支持任何在终端上工作的测试框架,并带有一些预配置的测试器(PHPUnit、phpspec、behat、Jest、AVA...),但您也可以轻松添加自己的,只需告诉它可执行文件的位置即可。它还显示测试的进度,让您运行单个测试或所有测试,并打开您喜欢的代码编辑器(PHPStorm、VSCode、Sublime Text 等),直接跳转到测试失败行。如果您的测试框架生成截图,它也能在日志页面中显示,就像您在终端中习惯看到的那样,所有红色和绿色。

它使用 Laravel 作为引擎,但支持(并已与许多语言、框架和测试框架测试过)

功能

  • 项目列表:点击项目链接查看所有测试。
  • 直接在您的源代码编辑器中打开文件(PHPStorm、Sublime Text...)。
  • 带有源代码链接的错误日志,直接跳转到源代码中的错误行。
  • 启用/禁用测试。一旦禁用,如果监视器检测到资源发生变化,则该测试将不会触发。
  • 实时测试状态:“空闲”、“运行中”、“排队”、“正常”和“失败”。
  • “显示”按钮,显示失败测试的错误日志。
  • 高度可配置,监视任何内容并测试任何内容!

视频

截图

仪表板

visits

错误日志

visits

visits

visits

命令行界面

Artisan 命令 WatcherTester 分别负责监视资源和执行测试。

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+

作者

Antonio Carlos Ribeiro

许可协议

Laravel Ci 采用 BSD 3-Clause 许可协议 - 详细信息请参阅 LICENSE 文件

贡献

欢迎提交 pull request 和 issues。