mirror of
https://github.com/wiosna-dev/common-library.git
synced 2026-03-12 09:31:51 +01:00
157 lines
2.8 KiB
Markdown
157 lines
2.8 KiB
Markdown
# Meritoo Common Library
|
||
|
||
Development-related information
|
||
|
||
# Requirements
|
||
|
||
* [Docker](https://www.docker.com)
|
||
* Your favourite IDE :)
|
||
|
||
# Getting started
|
||
|
||
1. Build, create and start Docker's containers by running command:
|
||
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
2. Rebuild project by running command (installs packages, prepares required directories and runs tests):
|
||
|
||
```bash
|
||
docker-compose exec php phing
|
||
```
|
||
|
||
> [What is Docker?](https://www.docker.com/what-docker)
|
||
|
||
# Composer
|
||
|
||
Available as `composer` service. You can run any Composer's command using the `composer` service:
|
||
|
||
```bash
|
||
docker-compose run --rm composer [command]
|
||
```
|
||
|
||
Examples below.
|
||
|
||
##### Install packages
|
||
|
||
```bash
|
||
docker-compose run --rm composer install
|
||
```
|
||
|
||
##### Update packages
|
||
|
||
```bash
|
||
docker-compose run --rm composer update
|
||
```
|
||
|
||
##### Add package
|
||
|
||
```bash
|
||
docker-compose run --rm composer require [vendor]/[package]
|
||
```
|
||
|
||
##### Remove package
|
||
|
||
```bash
|
||
docker-compose run --rm composer remove [vendor]/[package]
|
||
```
|
||
|
||
# Coding Standards Fixer
|
||
|
||
Fix coding standard by running command:
|
||
|
||
```bash
|
||
docker-compose exec php php-cs-fixer fix
|
||
```
|
||
|
||
or
|
||
|
||
```bash
|
||
docker-compose exec php phing -f phing/tests.xml build:fix-coding-standards
|
||
```
|
||
|
||
Omit cache and run the Fixer from scratch by running command:
|
||
|
||
```bash
|
||
docker-compose exec php rm .php_cs.cache && docker-compose exec php php-cs-fixer fix
|
||
```
|
||
|
||
> [Want more?](https://cs.sensiolabs.org)
|
||
|
||
# Tests
|
||
|
||
### Prerequisites
|
||
|
||
Install required packages by running command: `docker-compose run --rm composer install`.
|
||
|
||
### Running [PHPUnit](https://phpunit.de) tests
|
||
|
||
##### Easy (with code coverage)
|
||
|
||
```bash
|
||
docker-compose run --rm phpunit --verbose
|
||
```
|
||
|
||
or
|
||
|
||
```bash
|
||
docker-compose exec php phing -f phing/tests.xml test:phpunit
|
||
```
|
||
|
||
##### Quick (without code coverage)
|
||
|
||
```bash
|
||
docker-compose run --rm phpunit --verbose --no-coverage
|
||
```
|
||
|
||
# Mutation Tests
|
||
|
||
Served by [Infection — Mutation Testing Framework](https://infection.github.io).
|
||
|
||
### Running tests
|
||
|
||
```bash
|
||
docker-compose exec php vendor/bin/infection --threads=5
|
||
```
|
||
|
||
or
|
||
|
||
```bash
|
||
docker-compose exec php phing -f phing/tests.xml test:infection
|
||
```
|
||
|
||
### Result of testing
|
||
|
||
##### Terminal
|
||
|
||
Example of output:
|
||
```bash
|
||
125 mutations were generated:
|
||
105 mutants were killed
|
||
3 mutants were not covered by tests
|
||
5 covered mutants were not detected
|
||
0 errors were encountered
|
||
12 time outs were encountered
|
||
|
||
Metrics:
|
||
Mutation Score Indicator (MSI): 93%
|
||
Mutation Code Coverage: 97%
|
||
Covered Code MSI: 95%
|
||
```
|
||
|
||
##### Stored in `build/reports/infection` directory
|
||
|
||
* `build/reports/infection/infection-log.txt`
|
||
* `build/reports/infection/summary-log.txt`
|
||
|
||
# Other
|
||
|
||
Rebuild project and run tests by running command:
|
||
|
||
```bash
|
||
docker-compose exec php phing
|
||
```
|
||
|
||
[‹ Back to `Readme`](../README.md)
|