pragmarx/tddd

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

安装: 455

依赖项: 0

建议者: 0

安全: 0

星标: 721

监视者: 30

分支: 57

开放问题: 8

语言:Vue

v0.10.0 2018-08-31 23:19 UTC

This package is auto-updated.

Last update: 2024-09-21 20:07:54 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

负责从运行队列中获取测试,执行它并记录结果。测试器将只执行启用的测试。这是如何运行它的

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+

作者

Antonio Carlos Ribeiro

许可证

Laravel Ci遵循BSD 3-Clause许可证 - 详细内容请参阅LICENSE文件

贡献

欢迎提交拉取请求和问题。