swisnl/game-of-tests

类用于解析 Git 仓库以寻找测试,列出具有所有者的测试以创建测试编写排名。

1.2.2 2021-05-28 07:39 UTC

README

Packagist Build Status

此包可以作为在 Git 仓库中搜索并查找 PHP 测试的途径。我受到了我遇到的 Spotify 测试游戏 的启发。

我想为 PHP 实现自己的原因是为了帮助公司在测试中实现游戏化,并鼓励团队进行一般测试。

如何使用

远程

您可以如下检查远程仓库。这将创建一个位于 \Swis\GoT\Settings 中指定的路径的本地仓库,并使用它来查找测试和测试所有者。

$settings = \Swis\GoT\Settings\SettingsFactory::create();
$inspector = new \Swis\GoT\Inspector($settings);
$repository = $inspector->getRepositoryByUrl('git@github.com:swisnl/game-of-tests.git');
$results = $inspector->inspect($repository);

本地

如果您有一个本地仓库,您也可以直接使用它,例如,如果您有一组用作备份的基础仓库,那也是可以的。

$settings = \Swis\GoT\Settings\SettingsFactory::create();
$inspector = new \Swis\GoT\Inspector($settings);
$repository = $inspector->getRepositoryByPath('/path/to/repos');
$results = $inspector->inspect($repository);

设置

您可以使用 \Swis\GoT\Settings 类为包设置一些设置。它列出了可用的解析器、一些默认跳过的路径以及远程仓库在本地存储的路径。只需将设置传递给检查器即可。如果您想从工厂获取裸 Settings 对象,请将 create 函数的参数传递为 false。

// Create a bare settings object.
$settings = \Swis\GoT\Settings\SettingsFactory::create(false);

解析器

目前定义了 7 个解析器。PhpUnit、Codeception 和 Behat 用于 PHP,Ava/Tape、Jasmine/Jest/Mocha 和 QUnit 用于 JavaScript,True 用于 SCSS。解析器是一个小型类,它定义了如何查找测试文件以及如何计数该类型的测试。注意:某些 JavaScript 测试框架因使用相同的语法而合并在一个解析器中。

解析器返回一个包含 \Swis\GoT\Result 对象的数组,这些对象包含有关测试的信息。

示例命令

仓库包含一个小型示例命令用于 Laravel,如果您想使用它。

想要作为 Laravel 服务提供商的实现?请查看 swisnl/game-of-tests-laravel