mirror of
https://github.com/FriendsOfTYPO3/tea.git
synced 2024-11-22 10:56:13 +01:00
[FEATURE] Calculate code coverage (#266)
This commit is contained in:
parent
4ff6bbfc46
commit
9bf78a580b
7 changed files with 71894 additions and 2 deletions
2
.ddev/php/custom-php.ini
Normal file
2
.ddev/php/custom-php.ini
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
[PHP]
|
||||||
|
xdebug.mode=coverage
|
67
.github/workflows/codecoverage.yml
vendored
Normal file
67
.github/workflows/codecoverage.yml
vendored
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
---
|
||||||
|
# This GitHub Actions workflow is calculating code coverage of extension and creates a badge for it.
|
||||||
|
name: Code coverage
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
jobs:
|
||||||
|
code-coverage:
|
||||||
|
name: "Calculate code coverage"
|
||||||
|
runs-on: ubuntu-18.04
|
||||||
|
steps:
|
||||||
|
- name: "Checkout"
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
- name: "Install PHP"
|
||||||
|
uses: shivammathur/setup-php@v2
|
||||||
|
with:
|
||||||
|
php-version: "${{ matrix.php-version }}"
|
||||||
|
coverage: xdebug
|
||||||
|
extensions: xdebug, mysqli
|
||||||
|
tools: composer:v2
|
||||||
|
- name: "Show Composer version"
|
||||||
|
run: composer --version
|
||||||
|
- name: "Cache dependencies installed with composer"
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
key: "php${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.json') }}"
|
||||||
|
path: ~/.cache/composer
|
||||||
|
restore-keys: "php${{ matrix.php-version }}-composer-\n"
|
||||||
|
- env:
|
||||||
|
TYPO3: "${{ matrix.typo3-version }}"
|
||||||
|
name: "Install TYPO3 Core"
|
||||||
|
run: |
|
||||||
|
composer require --no-progress typo3/minimal:"$TYPO3"
|
||||||
|
composer show
|
||||||
|
- name: "Start MySQL"
|
||||||
|
run: "sudo /etc/init.d/mysql start"
|
||||||
|
- name: "Run functional tests with coverage"
|
||||||
|
run: |
|
||||||
|
export typo3DatabaseName="typo3";
|
||||||
|
export typo3DatabaseHost="127.0.0.1";
|
||||||
|
export typo3DatabaseUsername="root";
|
||||||
|
export typo3DatabasePassword="root";
|
||||||
|
composer ci:coverage:functional
|
||||||
|
- name: "Run unit tests with coverage"
|
||||||
|
run: composer ci:coverage:unit
|
||||||
|
- name: "Merge coverage results"
|
||||||
|
run: composer ci:coverage:merge
|
||||||
|
- name: "Generate coverage badge"
|
||||||
|
uses: timkrase/phpunit-coverage-badge@v1.2.0
|
||||||
|
with:
|
||||||
|
report: './coverage/clover.xml'
|
||||||
|
coverage_badge_path: './coverage/badge.svg'
|
||||||
|
- name: "Commit PHPUnit coverage results"
|
||||||
|
uses: s0/git-publish-subdir-action@develop
|
||||||
|
env:
|
||||||
|
REPO: self
|
||||||
|
BRANCH: code-coverage-badge
|
||||||
|
FOLDER: coverage
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
php-version:
|
||||||
|
- 7.4
|
||||||
|
typo3-version:
|
||||||
|
- ^10.4
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -7,5 +7,6 @@
|
||||||
/Resources/Private/yarn-error.log
|
/Resources/Private/yarn-error.log
|
||||||
/Resources/Private/yarn.lock
|
/Resources/Private/yarn.lock
|
||||||
/composer.lock
|
/composer.lock
|
||||||
|
/clover.xml
|
||||||
/nbproject
|
/nbproject
|
||||||
/var
|
/var
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
[![GitHub CI status](https://github.com/TYPO3-Documentation/tea/workflows/CI/badge.svg?branch=main)](https://github.com/TYPO3-Documentation/tea/actions)
|
[![GitHub CI status](https://github.com/TYPO3-Documentation/tea/workflows/CI/badge.svg?branch=main)](https://github.com/TYPO3-Documentation/tea/actions)
|
||||||
[![GitLab CI status](https://gitlab.typo3.org/qa/example-extension/badges/main/pipeline.svg)](https://gitlab.typo3.org/qa/example-extension/-/pipelines)
|
[![GitLab CI status](https://gitlab.typo3.org/qa/example-extension/badges/main/pipeline.svg)](https://gitlab.typo3.org/qa/example-extension/-/pipelines)
|
||||||
[![Latest stable version](https://poser.pugx.org/ttn/tea/v/stable.svg)](https://packagist.org/packages/ttn/tea)
|
[![Latest stable version](https://poser.pugx.org/ttn/tea/v/stable.svg)](https://packagist.org/packages/ttn/tea)
|
||||||
|
[![Code Coverage Badge](https://github.com/TYPO3-Documentation/tea/blob/code-coverage-badge/badge.svg)](https://github.com/TYPO3-Documentation/tea/blob/code-coverage-badge/clover.xml)
|
||||||
[![Total downloads](https://poser.pugx.org/ttn/tea/downloads.svg)](https://packagist.org/packages/ttn/tea)
|
[![Total downloads](https://poser.pugx.org/ttn/tea/downloads.svg)](https://packagist.org/packages/ttn/tea)
|
||||||
[![Latest unstable version](https://poser.pugx.org/ttn/tea/v/unstable.svg)](https://packagist.org/packages/ttn/tea)
|
[![Latest unstable version](https://poser.pugx.org/ttn/tea/v/unstable.svg)](https://packagist.org/packages/ttn/tea)
|
||||||
[![License](https://poser.pugx.org/ttn/tea/license.svg)](https://packagist.org/packages/ttn/tea)
|
[![License](https://poser.pugx.org/ttn/tea/license.svg)](https://packagist.org/packages/ttn/tea)
|
||||||
|
|
|
@ -88,6 +88,13 @@
|
||||||
"@ci:static"
|
"@ci:static"
|
||||||
],
|
],
|
||||||
"ci:composer:normalize": "@composer normalize --dry-run",
|
"ci:composer:normalize": "@composer normalize --dry-run",
|
||||||
|
"ci:coverage": [
|
||||||
|
"@ci:coverage:unit",
|
||||||
|
"@ci:coverage:functional"
|
||||||
|
],
|
||||||
|
"ci:coverage:functional": ".Build/vendor/bin/phpunit -c .Build/vendor/nimut/testing-framework/res/Configuration/FunctionalTests.xml --whitelist Classes --coverage-php=coverage/functional.cov Tests/Functional",
|
||||||
|
"ci:coverage:merge": "@php tools/phpcov merge --clover=./coverage/clover.xml coverage/",
|
||||||
|
"ci:coverage:unit": ".Build/vendor/bin/phpunit -c .Build/vendor/nimut/testing-framework/res/Configuration/UnitTests.xml --whitelist Classes --coverage-php=coverage/unit.cov Tests/Unit",
|
||||||
"ci:dynamic": [
|
"ci:dynamic": [
|
||||||
"@ci:tests"
|
"@ci:tests"
|
||||||
],
|
],
|
||||||
|
@ -163,6 +170,9 @@
|
||||||
"scripts-descriptions": {
|
"scripts-descriptions": {
|
||||||
"ci": "Runs all dynamic and static code checks.",
|
"ci": "Runs all dynamic and static code checks.",
|
||||||
"ci:composer:normalize": "Checks the composer.json.",
|
"ci:composer:normalize": "Checks the composer.json.",
|
||||||
|
"ci:coverage:functional": "Generates the code coverage report for functional tests.",
|
||||||
|
"ci:coverage:merge": "Merges the code coverage reports for unit and functional tests.",
|
||||||
|
"ci:coverage:unit": "Generates the code coverage report for unit tests.",
|
||||||
"ci:dynamic": "Runs all PHPUnit tests (unit and functional).",
|
"ci:dynamic": "Runs all PHPUnit tests (unit and functional).",
|
||||||
"ci:json:lint": "Lints the JSON files.",
|
"ci:json:lint": "Lints the JSON files.",
|
||||||
"ci:php": "Runs all static checks for the PHP files.",
|
"ci:php": "Runs all static checks for the PHP files.",
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<phive xmlns="https://phar.io/phive">
|
<phive xmlns="https://phar.io/phive">
|
||||||
<phar name="phar-io/phive" version="^0.14.5" installed="0.14.5" location="./tools/phive" copy="true"/>
|
<phar name="phar-io/phive" version="^0.14.5" installed="0.14.5" location="./tools/phive" copy="true"/>
|
||||||
<phar name="phpcpd" version="^6.0.3" installed="6.0.3" location="./tools/phpcpd" copy="true"/>
|
<phar name="phpcpd" version="^6.0.3" installed="6.0.3" location="./tools/phpcpd" copy="true"/>
|
||||||
|
<phar name="phpcov" version="^5.0.0" installed="5.0.0" location="./tools/phpcov" copy="true"/>
|
||||||
</phive>
|
</phive>
|
||||||
|
|
71810
tools/phpcov
Normal file
71810
tools/phpcov
Normal file
File diff suppressed because one or more lines are too long
Loading…
Reference in a new issue