Skip to content

Update testing files and implement Docker environment #7

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
May 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# Use the official PHP 8.2 image from Docker Hub
FROM php:8.2-cli

# Install Xdebug extension
RUN pecl install xdebug && docker-php-ext-enable xdebug

# Configure Xdebug
RUN echo "xdebug.mode=debug,coverage" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "xdebug.client_host=host.docker.internal" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini && \
echo "xdebug.client_port=9000" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini

# Expose port 9000 for xdebug
EXPOSE 9000

# Install git, unzip (required by Composer) and Composer itself
RUN apt-get update \
&& apt-get install -y \
git \
unzip \
&& php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" \
&& php composer-setup.php --install-dir=/usr/bin --filename=composer \
&& php -r "unlink('composer-setup.php');"

WORKDIR /var/www/html

COPY . /var/www/html

CMD ["tail", "-f", "/dev/null"]
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
# CoverageBadge

![](./badges/php.svg)

CoverageBadge is a library for creating an SVG coverage badge from a Clover XML file.

## Installation
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,6 @@
"scripts": {
"lint": "phpcs --ignore=/vendor/* --standard=PSR12 .",
"lint:fix": "phpcbf --ignore=/vendor/* --standard=PSR12 .",
"test": "phpunit --testdox"
"test": "phpunit --testdox --coverage-clover coverage/clover.xml --coverage-filter src/"
}
}
8 changes: 8 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
version: '3'
services:
app:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/var/www/html
6 changes: 0 additions & 6 deletions phpunit.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/11.1/phpunit.xsd" bootstrap="vendor/autoload.php" colors="true" columns="max" cacheDirectory=".phpunit.cache">
<coverage>
<report>
<clover outputFile="coverage.clover.xml"/>
<html outputDirectory="coverage_html"/>
</report>
</coverage>
<testsuites>
<testsuite name="unit">
<directory suffix=".php">./Tests/</directory>
Expand Down
4 changes: 2 additions & 2 deletions tests/BadgeComposerTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ public function testProcessTheCloverFileAndCalculateTheCoverage(): void
{
$this->processFile($this->inputFile);

$this->assertEquals(51, $this->badgeComposer->getTotalCoverage());
$this->assertEquals(43, $this->badgeComposer->getTotalCoverage());
}

/**
Expand All @@ -92,6 +92,6 @@ public function testProcessMultipleCloverFilesAndCalculateTheCoverage(): void
$this->processFile($this->inputFile);
$this->processFile($this->inputFile2);

$this->assertEquals(94, $this->badgeComposer->getTotalCoverage());
$this->assertEquals(83, $this->badgeComposer->getTotalCoverage());
}
}
101 changes: 53 additions & 48 deletions tests/test-input1.xml
Original file line number Diff line number Diff line change
@@ -1,53 +1,58 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1717008513">
<project timestamp="1717008513">
<file name="/var/www/html/wp-content/plugins/nuk-wp-block-plugin-template/inc/Base/ScriptsEnqueue.php">
<class name="NUK\WP\Inc\Base\ScriptsEnqueue" namespace="global">
<metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="12"/>
<coverage generated="1717164949">
<project timestamp="1717164949">
<file name="/var/www/html/src/BadgeComposer.php">
<class name="CodeB\CoverageBadge\BadgeComposer" namespace="global">
<metrics complexity="18" methods="6" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="17" elements="46" coveredelements="20"/>
</class>
<line num="28" type="method" name="register" visibility="public" complexity="1" crap="2" count="0"/>
<line num="29" type="stmt" count="0"/>
<line num="37" type="method" name="enqueue_admin_scripts" visibility="public" complexity="1" crap="2" count="0"/>
<line num="38" type="stmt" count="0"/>
<line num="39" type="stmt" count="0"/>
<line num="41" type="stmt" count="0"/>
<line num="42" type="stmt" count="0"/>
<line num="43" type="stmt" count="0"/>
<line num="44" type="stmt" count="0"/>
<line num="45" type="stmt" count="0"/>
<line num="46" type="stmt" count="0"/>
<line num="47" type="stmt" count="0"/>
<metrics loc="50" ncloc="27" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="4"/>
<line num="26" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="4"/>
<line num="28" type="stmt" count="4"/>
<line num="29" type="stmt" count="4"/>
<line num="30" type="stmt" count="4"/>
<line num="32" type="stmt" count="4"/>
<line num="40" type="method" name="getTotalCoverage" visibility="public" complexity="1" crap="1" count="2"/>
<line num="42" type="stmt" count="2"/>
<line num="56" type="method" name="validateFiles" visibility="private" complexity="4" crap="4" count="4"/>
<line num="58" type="stmt" count="4"/>
<line num="59" type="stmt" count="4"/>
<line num="60" type="stmt" count="1"/>
<line num="64" type="stmt" count="4"/>
<line num="65" type="stmt" count="1"/>
<line num="78" type="method" name="run" visibility="public" complexity="2" crap="6" count="0"/>
<line num="80" type="stmt" count="0"/>
<line num="81" type="stmt" count="0"/>
<line num="83" type="stmt" count="0"/>
<line num="95" type="method" name="processFile" visibility="private" complexity="4" crap="4.18" count="2"/>
<line num="98" type="stmt" count="2"/>
<line num="99" type="stmt" count="2"/>
<line num="100" type="stmt" count="2"/>
<line num="101" type="stmt" count="2"/>
<line num="102" type="stmt" count="2"/>
<line num="105" type="stmt" count="2"/>
<line num="106" type="stmt" count="2"/>
<line num="107" type="stmt" count="0"/>
<line num="108" type="stmt" count="0"/>
<line num="118" type="method" name="finalizeCoverage" visibility="private" complexity="6" crap="42" count="0"/>
<line num="120" type="stmt" count="0"/>
<line num="121" type="stmt" count="0"/>
<line num="123" type="stmt" count="0"/>
<line num="125" type="stmt" count="0"/>
<line num="127" type="stmt" count="0"/>
<line num="128" type="stmt" count="0"/>
<line num="129" type="stmt" count="0"/>
<line num="130" type="stmt" count="0"/>
<line num="131" type="stmt" count="0"/>
<line num="132" type="stmt" count="0"/>
<line num="133" type="stmt" count="0"/>
<line num="134" type="stmt" count="0"/>
<line num="135" type="stmt" count="0"/>
<line num="136" type="stmt" count="0"/>
<line num="137" type="stmt" count="0"/>
<line num="140" type="stmt" count="0"/>
<line num="141" type="stmt" count="0"/>
<line num="143" type="stmt" count="0"/>
<metrics loc="146" ncloc="89" classes="1" methods="6" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="17" elements="46" coveredelements="20"/>
</file>
<file name="/var/www/html/wp-content/plugins/nuk-wp-block-plugin-template/inc/Init.php">
<class name="NUK\WP\Inc\Init" namespace="global">
<metrics complexity="9" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="20" coveredelements="12"/>
</class>
<line num="32" type="method" name="get_services" visibility="public" complexity="1" crap="2" count="0"/>
<line num="33" type="stmt" count="0"/>
<line num="34" type="stmt" count="0"/>
<line num="35" type="stmt" count="0"/>
<line num="43" type="method" name="register_services" visibility="public" complexity="2" crap="6" count="0"/>
<line num="44" type="stmt" count="0"/>
<line num="45" type="stmt" count="0"/>
<line num="46" type="stmt" count="0"/>
<line num="55" type="method" name="deactivate" visibility="public" complexity="3" crap="12" count="0"/>
<line num="56" type="stmt" count="0"/>
<line num="57" type="stmt" count="0"/>
<line num="58" type="stmt" count="0"/>
<line num="59" type="stmt" count="0"/>
<line num="71" type="method" name="register" visibility="private" complexity="1" crap="2" count="0"/>
<line num="72" type="stmt" count="0"/>
<line num="83" type="method" name="instantiate" visibility="private" complexity="2" crap="6" count="0"/>
<line num="84" type="stmt" count="0"/>
<line num="86" type="stmt" count="0"/>
<line num="88" type="stmt" count="0"/>
<line num="91" type="stmt" count="0"/>
<metrics loc="94" ncloc="50" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="20" coveredelements="5"/>
</file>
<file name="/var/www/html/wp-content/plugins/nuk-wp-block-plugin-template/inc/Interfaces/Registrable.php">
<metrics loc="29" ncloc="11" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="4"/>
</file>
<metrics files="3" loc="173" ncloc="88" classes="2" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="0" elements="32" coveredelements="12"/>
<metrics files="1" loc="146" ncloc="89" classes="1" methods="6" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="40" coveredstatements="17" elements="46" coveredelements="20"/>
</project>
</coverage>
11 changes: 4 additions & 7 deletions tests/test-input2.xml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1717008513">
<project timestamp="1717008513">
<file name="/var/www/html/wp-content/plugins/nuk-wp-block-plugin-template/inc/Base/ScriptsEnqueue.php">
<class name="NUK\WP\Inc\Base\ScriptsEnqueue" namespace="global">
<file name="/var/www/html/enqueue.php">
<class name="Base\ScriptsEnqueue" namespace="global">
<metrics complexity="2" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="33"/>
</class>
<line num="28" type="method" name="register" visibility="public" complexity="1" crap="2" count="0"/>
Expand All @@ -19,8 +19,8 @@
<line num="47" type="stmt" count="0"/>
<metrics loc="50" ncloc="27" classes="1" methods="2" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="10" coveredstatements="0" elements="12" coveredelements="0"/>
</file>
<file name="/var/www/html/wp-content/plugins/nuk-wp-block-plugin-template/inc/Init.php">
<class name="NUK\WP\Inc\Init" namespace="global">
<file name="/var/www/html/Init.php">
<class name="Inc\Init" namespace="global">
<metrics complexity="9" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="20" coveredelements="0"/>
</class>
<line num="32" type="method" name="get_services" visibility="public" complexity="1" crap="2" count="0"/>
Expand All @@ -45,9 +45,6 @@
<line num="91" type="stmt" count="0"/>
<metrics loc="94" ncloc="50" classes="1" methods="5" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="0" elements="20" coveredelements="0"/>
</file>
<file name="/var/www/html/wp-content/plugins/nuk-wp-block-plugin-template/inc/Interfaces/Registrable.php">
<metrics loc="29" ncloc="11" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
</file>
<metrics files="3" loc="173" ncloc="88" classes="2" methods="7" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="25" coveredstatements="0" elements="32" coveredelements="0"/>
</project>
</coverage>