swisnl / game-of-tests
类用于解析 Git 仓库以寻找测试,列出具有所有者的测试以创建测试编写排名。
1.2.2
2021-05-28 07:39 UTC
Requires
- gitonomy/gitlib: ^1.0
Requires (Dev)
- phpunit/phpunit: ~4.0
README
此包可以作为在 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。