Classes to parse git repositories in search for tests, gives a list of tests with their owner to create a ranking of tests written.
This package serves as a way to search through git repositories and find PHP tests. I was inspired by the the Spotify testing game I ran in to.
The reason i wanted to my own implementation for PHP was to help gamify testing in the company and encourage testing in general in the teams.
You can inspect a remote repository as follows. This will create a local repository in the path specifiek in
\Swis\GoT\Settings and use that to find the tests and test owners.
$settings = \Swis\GoT\Settings\SettingsFactory::create(); $inspector = new \Swis\GoT\Inspector($settings); $repository = $inspector->getRepositoryByUrl('firstname.lastname@example.org:swisnl/game-of-tests.git'); $results = $inspector->inspect($repository);
If you have a local repository, you can also use that directly, for example if you have a set of base repositories as backups, that it fine.
$settings = \Swis\GoT\Settings\SettingsFactory::create(); $inspector = new \Swis\GoT\Inspector($settings); $repository = $inspector->getRepositoryByPath('/path/to/repos'); $results = $inspector->inspect($repository);
You can use the
\Swis\GoT\Settings class set some settings for the package. It lists the available parsers, some paths that are skipped by default and the path where the remote repositories are stored localy. Just pass the settings to the incspector. If you want to get a bare Settings object from the factory, pass false to the create function.
// Create a bare settings object. $settings = \Swis\GoT\Settings\SettingsFactory::create(false);
A parser return an array with
\Swis\GoT\Result objects that contain the information on the test.
The repository includes a small example command for Laravel, should you want to want to use it there.
Want an implementation as a Laravel service provider? Check out swisnl/game-of-tests-laravel.