此包已被废弃,不再维护。作者建议使用 pragmarx/tddd 包。

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

安装1,295

依赖者: 0

建议者: 0

安全: 0

星星: 725

监视者: 29

分支: 64

语言:Vue

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

README

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

Latest Stable Version License Downloads Code Quality Build StyleCI

这是什么?

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

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

特性

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

视频

屏幕截图

仪表板

visits

错误日志

visits

visits

visits

命令行界面

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+

作者

Antonio Carlos Ribeiro

许可

Laravel Ci 在 BSD 3-Clause 许可下授权 - 请参阅 LICENSE 文件以获取详细信息

贡献

欢迎拉取请求和问题。