PHP client library for Coveralls API.

Overview

php-coveralls

Build Status Coverage Status

Latest Stable Version Total Downloads

PHP client library for Coveralls.

Prerequisites

Installation

Download phar file

We started to create a phar file, starting from the version 0.7.0 release. It is available at the URLs like:

https://github.com/php-coveralls/php-coveralls/releases/download/v2.5.3/php-coveralls.phar

Download the file and add exec permissions:

$ wget https://github.com/php-coveralls/php-coveralls/releases/download/v2.5.3/php-coveralls.phar
$ chmod +x php-coveralls.phar

Install by composer

To install php-coveralls with Composer, run the following command:

$ composer require --dev php-coveralls/php-coveralls

If you need support for PHP versions older than 5.5, you will need to use a 1.x version:

$ composer require --dev 'php-coveralls/php-coveralls:^1.1'

You can see this library on Packagist.

Composer installs autoloader at ./vendor/autoloader.php. If you use php-coveralls in your php script, add:

require_once 'vendor/autoload.php';

If you use Symfony2, autoloader has to be detected automatically.

Use it from your git clone

Or you can use git clone command:

# HTTP
$ git clone https://github.com/php-coveralls/php-coveralls.git
# SSH
$ git clone [email protected]:php-coveralls/php-coveralls.git

Configuration

Currently php-coveralls supports clover style coverage report and collects coverage information from clover.xml.

PHPUnit

Make sure that phpunit.xml.dist is configured to generate "coverage-clover" type log named clover.xml like the following configuration:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit ...>
    <logging>
        ...
        <log type="coverage-clover" target="build/logs/clover.xml"/>
        ...
    </logging>
</phpunit>

You can also use --coverage-clover CLI option.

phpunit --coverage-clover build/logs/clover.xml

phpcov

Above settings are good for most projects if your test suite is executed once a build and is not divided into several parts. But if your test suite is configured as parallel tasks or generates multiple coverage reports through a build, you can use either coverage_clover configuration in .coveralls.yml (see below coverage clover configuration section) to specify multiple clover.xml files or phpcov for processing coverage reports.

composer.json

    "require-dev": {
        "php-coveralls/php-coveralls": "^2.5",
        "phpunit/phpcov": "^2.0"
    },

phpunit configuration

Make sure that phpunit.xml.dist is configured to generate "coverage-php" type log:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit ...>
    <logging>
        ...
        <log type="coverage-php" target="build/cov/coverage.cov"/>
        ...
    </logging>
</phpunit>

You can also use --coverage-php CLI option.

# use --coverage-php option instead of --coverage-clover
phpunit --coverage-php build/cov/coverage-${component_name}.cov

phpcov configuration

And then, execute phpcov.php to merge coverage.cov logs.

# get information
php vendor/bin/phpcov.php --help

# merge coverage.cov logs under build/cov
php vendor/bin/phpcov.php merge --clover build/logs/clover.xml build/cov

# in case of memory exhausting error
php -d memory_limit=-1 vendor/bin/phpcov.php ...

clover.xml

php-coveralls collects count attribute in a line tag from clover.xml if its type attribute equals to stmt. When type attribute equals to method, php-coveralls excludes its count attribute from coverage collection because abstract method in an abstract class is never counted though subclasses implement that method which is executed in test cases.

<!-- this one is counted as code coverage -->
<line num="37" type="stmt" count="1"/>
<!-- this one is not counted -->
<line num="43" type="method" name="getCommandName" crap="1" count="1"/>

Travis CI

Add php php-coveralls.phar or php vendor/bin/php-coveralls to your .travis.yml at after_success.

# .travis.yml
language: php
php:
  - 5.5
  - 5.4
  - 5.3

env:
  global:
    - XDEBUG_MODE=coverage

matrix:
  allow_failures:
    - php: 5.5

install:
  - curl -s http://getcomposer.org/installer | php
  - php composer.phar install --dev --no-interaction

script:
  - mkdir -p build/logs
  - php vendor/bin/phpunit -c phpunit.xml.dist

after_success:
  - travis_retry php vendor/bin/php-coveralls
  # or enable logging
  - travis_retry php vendor/bin/php-coveralls -v

CircleCI

Enable Xdebug in your circle.yml at dependencies section since currently Xdebug extension is not pre-enabled. composer and phpunit are pre-installed but you can install them manually in this dependencies section. The following sample uses default ones.

machine:
  php:
    version: 5.4.10

## Customize dependencies
dependencies:
  override:
    - mkdir -p build/logs
    - composer install --dev --no-interaction
    - sed -i 's/^;//' ~/.phpenv/versions/$(phpenv global)/etc/conf.d/xdebug.ini

## Customize test commands
test:
  override:
    - phpunit -c phpunit.xml.dist

Add COVERALLS_REPO_TOKEN environment variable with your coveralls repo token on Web UI (Tweaks -> Environment Variable).

Codeship

You can configure CI process for Coveralls by adding the following commands to the textarea on Web UI (Project settings > Test tab).

In the "Modify your Setup Commands" section:

curl -s http://getcomposer.org/installer | php
php composer.phar install --dev --no-interaction
mkdir -p build/logs

In the "Modify your Test Commands" section:

php vendor/bin/phpunit -c phpunit.xml.dist
php vendor/bin/php-coveralls

Next, open Project settings > Environment tab, you can set COVERALLS_REPO_TOKEN environment variable.

In the "Configure your environment variables" section:

COVERALLS_REPO_TOKEN=your_token

GitHub Actions

Add a new step after phpunit generate coverage report.

- name: Upload coverage results to Coveralls
  env:
    COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  run: |
    composer global require php-coveralls/php-coveralls
    php-coveralls --coverage_clover=build/logs/clover.xml -v

From local environment

If you would like to call Coveralls API from your local environment, you can set COVERALLS_RUN_LOCALLY environment variable. This configuration requires repo_token to specify which project on Coveralls your project maps to. This can be done by configuring .coveralls.yml or COVERALLS_REPO_TOKEN environment variable.

$ export COVERALLS_RUN_LOCALLY=1

# either env var
$ export COVERALLS_REPO_TOKEN=your_token

# or .coveralls.yml configuration
$ vi .coveralls.yml
repo_token: your_token # should be kept secret!

php-coveralls set the following properties to json_file which is sent to Coveralls API (same behaviour as the Ruby library will do except for the service name).

  • service_name: php-coveralls
  • service_event_type: manual

Parallel Builds

Coveralls provides the ability to combine coverage result from multiple parallel builds into one. To enable the feature you can set the following in your environment variable.

COVERALLS_PARALLEL=true

To distinguish your job name, please set the COVERALLS_FLAG_NAME environment variable.

COVERALLS_FLAG_NAME=$YOUR_PHP_VERSION

Bear in mind that you will need to configure your build to send a webhook after all the parallel builds are done in order for Coveralls to merge the results.

Refer to Parallel Builds Webhook for more information for setup on your environment.

CLI options

You can get help information for coveralls with the --help (-h) option.

php vendor/bin/php-coveralls --help
  • --config (-c): Used to specify the path to .coveralls.yml. Default is .coveralls.yml
  • --verbose (-v): Used to show logs.
  • --dry-run: Used not to send json_file to Coveralls Jobs API.
  • --exclude-no-stmt: Used to exclude source files that have no executable statements.
  • --env (-e): Runtime environment name: test, dev, prod (default: "prod")
  • --coverage_clover (-x): Coverage clover xml files(allowing multiple values)
  • --json_path (-o): Used to specify where to output json_file that will be uploaded to Coveralls API. (default: build/logs/coveralls-upload.json)
  • --root_dir (-r): Root directory of the project. (default: ".")

.coveralls.yml

php-coveralls can use optional .coveralls.yml file to configure options. This configuration file is usually at the root level of your repository, but you can specify other path by --config (or -c) CLI option. Following options are the same as Ruby library (see reference on coveralls.io).

  • repo_token: Used to specify which project on Coveralls your project maps to. This is only needed for repos not using CI and should be kept secret
  • service_name: Allows you to specify where Coveralls should look to find additional information about your builds. This can be any string, but using travis-ci or travis-pro will allow Coveralls to fetch branch data, comment on pull requests, and more.

Following options can be used for php-coveralls.

  • entry_point: Used to specify API endpoint for sending reports. Useful when using self-hosted coveralls or other other, similar service (eg opencov). Default is https://coveralls.io.
  • coverage_clover: Used to specify the path to clover.xml. Default is build/logs/clover.xml
  • json_path: Used to specify where to output json_file that will be uploaded to Coveralls API. Default is build/logs/coveralls-upload.json.
# .coveralls.yml example configuration

# same as Ruby lib
repo_token: your_token # should be kept secret!
service_name: travis-pro # travis-ci or travis-pro

# for php-coveralls
coverage_clover: build/logs/clover.xml
json_path: build/logs/coveralls-upload.json

coverage clover configuration

You can specify multiple clover.xml logs at coverage_clover. This is useful for a project that has more than two test suites if all of the test results should be merged into one json_file.

#.coveralls.yml

# single file
coverage_clover: build/logs/clover.xml

# glob
coverage_clover: build/logs/clover-*.xml

# array
# specify files
coverage_clover:
  - build/logs/clover-Auth.xml
  - build/logs/clover-Db.xml
  - build/logs/clover-Validator.xml

You can also use --coverage_clover (or -x) command line option as follows:

coveralls --coverage_clover=build/logs/my-clover.xml

root_dir detection and override

This tool assume the current directory is the project root directory by default. You can override it with --root_dir command line option.

Change log

See changelog

Wiki

See wiki

Comments
  • Now requiring PHP 5.5.9

    Now requiring PHP 5.5.9

    5252c82dd2abacfed19b0adc8e4dee1788d11661 did not set an upper bound on the version for Symfony dependencies. As a result, versions are being pulled in that now require a PHP minimum version of 5.5.9, which exceeds this repository's current minimum version of 5.3.

    • symfony/Console@9503491a59ef89b1ce78e1d14716cf6d89817842
    • symfony/Yaml@2daf2f6c6dc279117a4fedf32eae34f5d1d18600
    • symfony/Config@d3e7b5793623a322b297c4ed5c4b4a13bea62398
    • symfony/Stopwatch@e24eab195ce909eb25851fb9bc289f33d2411f3a
    opened by elazar 70
  • Upgrade to PHP 5.5 and Guzzle 6

    Upgrade to PHP 5.5 and Guzzle 6

    Brings Coveralls more in line with modern code bases that are using PSR-7 and newer versions of Guzzle.

    Also changes the minimum PHP version to 5.5 and upgrades packages.

    Fixes #80 Refs #152

    Note: I have not tested this beyond what the continuous integration tests do. I assume they are complete enough to cover the changes made.

    opened by shadowhand 52
  • Tag new release

    Tag new release

    It seems somebody updated the library already to work with guzzle 6 https://github.com/satooshi/php-coveralls/commit/07473e6edef50aa9c2b284b8c8c0d45974a2a4dd Only there hasn't been a new release tagged for almost a year.

    opened by cdekok 50
  • Using outdated Guzzle version

    Using outdated Guzzle version

    Guzzle made some breaking changes starting with version 4.0 and php-coveralls doesn't work with the newer versions. From what I can tell only the Jobs::upload() method will need to be changed and the composer.json updated.

    opened by Dragonrun1 44
  • GH Actions: various updates

    GH Actions: various updates

    GH Actions: version update for actions/checkout

    Ref: https://github.com/actions/checkout/releases

    GH Actions: enable error reporting

    The default setting for error_reporting used by the SetupPHP action is error_reporting=E_ALL & ~E_DEPRECATED & ~E_STRICT and display_errors is set to Off.

    For the purposes of CI/test runs, I'd recommend running with -1 and display_errors=On to ensure all PHP notices are shown.

    GH Actions: fix typo

    PHPUnit: update configuration

    PHPUnit >= 9.5.10 and >= 8.5.21 contain a particular (IMO breaking) change:

    • PHPUnit no longer converts PHP deprecations to exceptions by default (configure convertDeprecationsToExceptions="true" to enable this)

    Let's unpack this:

    Previously (PHPUnit < 9.5.10/8.5.21), if PHPUnit would encounter a PHP native deprecation notice, it would:

    1. Show a test which causes a deprecation notice to be thrown as "errored",
    2. Show the first deprecation notice it encountered and
    3. PHPUnit would exit with a non-0 exit code (2), which will fail a CI build.

    As of PHPUnit 9.5.10/8.5.21, if PHPUnit encounters a PHP native deprecation notice, it will no longer do so. Instead PHPUnit will:

    1. Show a test which causes a PHP deprecation notice to be thrown as "risky",
    2. Show the all deprecation notices it encountered and
    3. PHPUnit will exit with a 0 exit code, which will show a CI build as passing.

    As this repo is generally used in CI by other repos, IMO it is important to fix deprecations early to prevent being the reason for workflows of users of this repo to fail.

    This commit reverts PHPUnit to the previous behaviour by adding convertDeprecationsToExceptions="true" to the PHPUnit configuration. It also adds the other related directives for consistency.

    Refs:

    • https://github.com/sebastianbergmann/phpunit/blob/9.5/ChangeLog-8.5.md
    • https://github.com/sebastianbergmann/phpunit/blob/9.5/ChangeLog-9.5.md

    GH Actions/CI: run the test suite against PHP 8.1 and PHP 8.2

    I intended to just add a build against PHP 8.2, but realized the tests aren't run against PHP 8.1 yet when looking at the script.

    Both the PHP 8.1 test run as well as the PHP 8.2 test run will currently fail. Some of my other open PRs are stepping stones to fix this.

    Once those open PRs are merged, there should be just five failures left on PHP 8.1, which I'm leaving for someone else to address. As for PHP 8.2: the remaining test failures there look to be mostly related to external dependencies (Prophecy, Symfony/Console). Once those have released PHP 8.2 ready versions, it can be evaluated if there is anything more that needs addressing in this repo.

    🆕 GH Actions: disallow for Symfony/Flex composer plugin (updated)

    As discussed in the ticket, as of July 1st 2022, Composer requires explicit permission to be given for Composer plugins to be run when using Composer 2.2+. See: https://blog.packagist.com/composer-2-2/#more-secure-plugin-execution

    On top of that the website which Symfony Flex tries to access during its install is not responding anymore when using old Flex versions in which those API calls haven't been updated yet. Also see: https://symfony.com/blog/upgrade-flex-on-your-symfony-projects

    Combining the above two issues and having done some test runs on GH Actions, I've come to the conclusion that not allowing the symfony/flex plugin and disabling the running of plugins during the install step solves the problems without any impact on the tests.

    So that is what this commit now does.

    🆕 Composer: limit allowed PHPUnit 9.x version

    The PHPUnit 8.5.29/9.5.23 patch update removed the dependency on Prophecy, which means that projects using Prophecy now need to require it themselves:

    sebastianbergmann/phpunit 5033: Do not depend on phpspec/prophecy

    See: https://github.com/sebastianbergmann/phpunit/blob/main/ChangeLog-9.5.md

    This, however, has its own problems, what with the phpspec/propephy-phpunit layer not allowing installation with PHPUnit < 9.

    So, for now, this limits PHPUnit to a version before the dependency was dropped.

    opened by jrfnl 18
  • Windows: not working at all.

    Windows: not working at all.

    PHPUnit 5.1.2 by Sebastian Bergmann and contributors.
    
    FEEEEEEESSESSSSEEEEEEEEEE.................FSSFSS....EEEE......  62 / 243 ( 25%)
    .......................EEEEEEEEEEEEEEEEEE..................... 124 / 243 ( 51%)
    ....................................EEEEEF.FF................. 186 / 243 ( 76%)
    .......EEEFFEEEEFEEEEFEEFEEEEEEEEEFEEEEEEEEEE.....F....
    
    Time: 22.35 seconds, Memory: 15.25Mb
    
    There were 77 errors:
    
    1) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldNotHaveJsonFileOnConstruction
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    2) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSetJsonFile
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    3) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldReturnConfiguration
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    4) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldNotHaveHttpClientOnConstructionWithoutHttpClient
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    5) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldHaveHttpClientOnConstructionWithHttpClient
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    6) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSetHttpClient
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    7) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldCollectCloverXml
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    8) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldCollectCloverXmlExcludingNoStatementsFiles
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    9) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendTravisCiJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:454
    
    10) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendTravisProJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:481
    
    11) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendCircleCiJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:511
    
    12) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendJenkinsJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:537
    
    13) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendLocalJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:561
    
    14) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendUnsupportedJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:581
    
    15) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldSendUnsupportedGitJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:602
    
    16) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::shouldNotSendJobIfTestEnv
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs.php:98
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:624
    
    17) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::throwRuntimeExceptionIfInvalidEnv
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    18) Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest::throwRuntimeExceptionIfNoSourceFiles
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Api\JobsTest.php:28
    
    19) Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest::shouldExecuteCoverallsV1JobsCommand
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand.php:142
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand.php:111
    D:\GIT\fork\php-coveralls-fork\vendor\symfony\console\Command\Command.php:256
    D:\GIT\fork\php-coveralls-fork\vendor\symfony\console\Tester\CommandTester.php:80
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest.php:92
    
    20) Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest::shouldExecuteCoverallsV1JobsCommandWithWrongRootDir
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest.php:26
    
    21) Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest::shouldExecuteCoverallsV1JobsCommandWithRootDirOverride
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: coverage_clover XML file is not readable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:154
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:180
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:130
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:108
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand.php:142
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand.php:111
    D:\GIT\fork\php-coveralls-fork\vendor\symfony\console\Command\Command.php:256
    D:\GIT\fork\php-coveralls-fork\vendor\symfony\console\Tester\CommandTester.php:80
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest.php:172
    
    22) Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest::shouldExecuteCoverallsV1JobsCommandThrowInvalidConfigurationException
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommandTest.php:26
    
    23) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadNonExistingYml
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:60
    
    24) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadEmptyYmlIfSrcDirNotFound
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:76
    
    25) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadEmptyYmlIfCoverageCloverNotFound
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    26) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadEmptyYmlIfJsonPathDirNotWritable
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    27) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadEmptyYmlIfJsonPathNotWritable
    touch(): Utime failed: No such file or directory
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:53
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:115
    
    28) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadEmptyYml
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:133
    
    29) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldThrowInvalidConfigurationExceptionUponLoadingSrcDirYml
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    30) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadCoverageCloverYmlContainingDefaultValue
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:162
    
    31) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadCoverageCloverOverriddenByInput
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:193
    
    32) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadCoverageCloverYmlContainingGlobValue
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:206
    
    33) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadCoverageCloverYmlContainingArrayValue
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:220
    
    34) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadJsonPathYmlContainingDefaultValue
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:234
    
    35) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadExcludeNoStmtYmlContainingTrue
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:248
    
    36) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::shouldLoadExcludeNoStmtYmlContainingFalse
    Symfony\Component\Config\Definition\Exception\InvalidConfigurationException: json_path is not writable
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:232
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:109
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Config\Configurator.php:36
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:262
    
    37) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadCoverageCloverYmlIfCoverageCloverNotFound
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    38) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadCoverageCloverYmlIfCoverageCloverIsNotString
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    39) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadJsonPathYmlIfJsonPathNotFound
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    40) Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest::throwInvalidConfigurationExceptionOnLoadExcludeNoStmtYmlIfInvalid
    unlink(D:\GIT\fork\php-coveralls-fork\tests\prj/build/logs/coveralls-upload.json): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\ProjectTestCase.php:62
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Config\ConfiguratorTest.php:34
    
    41) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldFillJobsForServiceJobId
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:533
    
    42) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldFillJobsForServiceNumber
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:556
    
    43) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldFillJobsForStandardizedEnvVars
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:594
    
    44) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldFillJobsForServiceEventType
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:622
    
    45) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldFillJobsForUnsupportedJob
    RuntimeException: source_files must be set
    
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:643
    
    46) Satooshi\Component\File\PathTest::shouldBeRelativePath with data set #0 ('')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    47) Satooshi\Component\File\PathTest::shouldBeRelativePath with data set #1 ('.')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    48) Satooshi\Component\File\PathTest::shouldBeRelativePath with data set #2 ('..')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    49) Satooshi\Component\File\PathTest::shouldNotConvertAbsolutePath
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    50) Satooshi\Component\File\PathTest::shouldConvertAbsolutePathIfRelativePathGiven with data set #0 ('')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    51) Satooshi\Component\File\PathTest::shouldConvertAbsolutePathIfRelativePathGiven with data set #1 ('.')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    52) Satooshi\Component\File\PathTest::shouldConvertAbsolutePathIfRelativePathGiven with data set #2 ('..')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    53) Satooshi\Component\File\PathTest::shouldNotBeRealPath
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    54) Satooshi\Component\File\PathTest::shouldGetRealPathIfRelativePathGiven with data set #0 ('')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    55) Satooshi\Component\File\PathTest::shouldGetRealPathIfRelativePathGiven with data set #1 ('.')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    56) Satooshi\Component\File\PathTest::shouldGetRealPathIfRelativePathGiven with data set #2 ('..')
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    57) Satooshi\Component\File\PathTest::shouldNotBeRealDir
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    58) Satooshi\Component\File\PathTest::shouldGetRealDirIfRelativePathGiven
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    59) Satooshi\Component\File\PathTest::shouldNotBeRealWritingFilePath
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    60) Satooshi\Component\File\PathTest::shouldGetRealWritingPathIfRelativePathGiven
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    61) Satooshi\Component\File\PathTest::shouldNotExistRealPathIfFalseGiven
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    62) Satooshi\Component\File\PathTest::shouldNotExistRealPath
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    63) Satooshi\Component\File\PathTest::shouldExistRealPath
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    64) Satooshi\Component\File\PathTest::shouldNotExistRealFile
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    65) Satooshi\Component\File\PathTest::shouldNotExistRealFileIfDirGiven
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    66) Satooshi\Component\File\PathTest::shouldExistRealFile
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    67) Satooshi\Component\File\PathTest::shouldNotBeRealFileReadableIfFileNotFound
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    68) Satooshi\Component\File\PathTest::shouldBeRealFileReadable
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    69) Satooshi\Component\File\PathTest::shouldNotBeRealFileWritableIfFileNotFound
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:28
    
    70) Satooshi\Component\File\PathTest::shouldNotBeRealFileWritableIfFileUnwritable
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    71) Satooshi\Component\File\PathTest::shouldBeRealFileWritable
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    72) Satooshi\Component\File\PathTest::shouldNotExistRealDir
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    73) Satooshi\Component\File\PathTest::shouldNotExistRealDirIfFileGiven
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    74) Satooshi\Component\File\PathTest::shouldExistRealDir
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    75) Satooshi\Component\File\PathTest::shouldNotBeRealDirWritableIfDirNotFound
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    76) Satooshi\Component\File\PathTest::shouldNotBeRealDirWritableIfDirUnwritable
    rmdir(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.dir): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:41
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:63
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:428
    
    77) Satooshi\Component\File\PathTest::shouldBeRealDirWritable
    unlink(D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File/unwritable.txt): Permission denied
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:34
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:26
    
    --
    
    There were 13 failures:
    
    1) Satooshi\Bundle\CoverallsBundle\Console\ApplicationTest::shouldExecuteCoverallsV1JobsCommand
    Failed asserting that 1 is identical to 0.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsBundle\Console\ApplicationTest.php:87
    
    2) Satooshi\Bundle\CoverallsV1Bundle\Collector\CloverXmlCoverageCollectorTest::shouldCollectSourceFiles
    Failed asserting that actual size 0 matches expected size 3.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Collector\CloverXmlCoverageCollectorTest.php:109
    
    3) Satooshi\Bundle\CoverallsV1Bundle\Collector\CloverXmlCoverageCollectorTest::shouldCollectSourceFilesUnderRootDir
    Failed asserting that actual size 0 matches expected size 3.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Collector\CloverXmlCoverageCollectorTest.php:168
    
    4) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::throwRuntimeExceptionOnFillingJobsIfInvalidEnv
    Failed asserting that exception of type "RuntimeException" matches expected exception "Satooshi\Bundle\CoverallsV1Bundle\Entity\Exception\RequirementsNotSatisfiedException". Message was: "source_files must be set" at
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:287
    D:\GIT\fork\php-coveralls-fork\src\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFile.php:154
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:659
    .
    
    5) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldReportLineCoverage
    Failed asserting that 0 is identical to 50.0.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:686
    
    6) Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest::shouldExcludeNoStatementsFiles
    Failed asserting that actual size 0 matches expected size 4.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Bundle\CoverallsV1Bundle\Entity\JsonFileTest.php:708
    
    7) Satooshi\Component\File\PathTest::shouldNotBeRelativePath with data set #0 ('/')
    Failed asserting that true is false.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:105
    
    8) Satooshi\Component\File\PathTest::shouldNotBeRelativePath with data set #1 ('/path/to/somewhere')
    Failed asserting that true is false.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:105
    
    9) Satooshi\Component\File\PathTest::shouldConvertAbsolutePathIfAbsolutePathGiven
    Failed asserting that two strings are identical.
    --- Expected
    +++ Actual
    @@ @@
    -D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File
    +/path/to/dir\D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:144
    
    10) Satooshi\Component\File\PathTest::shouldGetRealPathIfAbsolutePathGiven
    Failed asserting that false is identical to 'D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File'.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:183
    
    11) Satooshi\Component\File\PathTest::shouldGetRealDirIfAbsolutePathGiven
    Failed asserting that false is identical to 'D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component'.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:222
    
    12) Satooshi\Component\File\PathTest::shouldNotBeRealFileReadableIFFileUnreadable
    Failed asserting that true is false.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\File\PathTest.php:334
    
    13) Satooshi\Component\System\Git\GitCommandTest::shouldReturnHeadCommit
    Failed asserting that actual size 1 matches expected size 6.
    
    D:\GIT\fork\php-coveralls-fork\tests\Satooshi\Component\System\Git\GitCommandTest.php:89
    
    FAILURES!
    Tests: 233, Assertions: 363, Errors: 77, Failures: 13, Skipped: 10.
    
    Generating code coverage report in Clover XML format ... done
    
    bug 
    opened by keradus 18
  • Problems with Travis CI environment variables

    Problems with Travis CI environment variables "Requirements are not satisfied."

    I have problem with Travis CI integration

    $ php vendor/bin/coveralls -v
    Load coverage clover log:
      - /home/travis/build/Mahout/Mahout/build/artifacts/logs/clover.xml
    Found 3 source files:
      - 100.00% Mahout/Request.php
      - 100.00% Mahout/Utils.php
      - 100.00% Mahout/Utils/KeySpaceConstrainedParams.php
    Coverage: 100.00% (192/192)
    Collect git info
    Read environment variables
    Requirements are not satisfied.
      - TRAVIS='true'
      - TRAVIS_JOB_ID='18683918'
      - CI_NAME='travis-ci'
      - COVERALLS_REPO_TOKEN='EEqvgAJ379f5x05BlyQo87E7oYC3kzh0t'
    Set environment variables properly like the following.
    For Travis users:
      - TRAVIS
      - TRAVIS_JOB_ID
    For CircleCI users:
      - CIRCLECI
      - CIRCLE_BUILD_NUM
      - COVERALLS_REPO_TOKEN
    For Jenkins users:
      - JENKINS_URL
      - BUILD_NUMBER
      - COVERALLS_REPO_TOKEN
    From local environment:
      - COVERALLS_RUN_LOCALLY
      - COVERALLS_REPO_TOKEN
    elapsed time: 0.071 sec memory: 4.25 MB
    

    Job url: https://travis-ci.org/Mahout/Mahout/jobs/18683918 Github url: http://github.com/Mahout/Mahout/

    bug 
    opened by aurimasniekis 17
  • [Composer] Update to PSR-4 + Use Semver constraint + Remove minimum-stability

    [Composer] Update to PSR-4 + Use Semver constraint + Remove minimum-stability

    As explain in the title, this PR does three things:

    • Remove the minimum-stability flag as stable is the default one.
    • Upgrade all constraints to ones following Semver and so, should not break BC
    • Upgrade tha autoloading to PSR-4

    I need this PR meanwhile we find the issues in #75 (One of my travis-ci build can't be resolved. See here).

    opened by egeloen 16
  • Add support for Github actions

    Add support for Github actions

    Currently php-coveralls doesn't auto detect which service it's running on when using Github Actions. It would be nice if it could do so.

    Even better if there was a .yml config available for Github action for uploading data to coveralls using this tool.

    opened by ADmad 14
  • Deprecation warning when using the phar file with PHP 5.5

    Deprecation warning when using the phar file with PHP 5.5

    The example build: https://travis-ci.org/GoogleCloudPlatform/getting-started-php/builds/96800932#L1072

    PHP Deprecated:  curl_setopt_array(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead in phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlHandle.php on line 202
    PHP Stack trace:
    PHP   1. {main}() /home/travis/bin/coveralls:0
    PHP   2. require() /home/travis/bin/coveralls:12
    PHP   3. Symfony\Component\Console\Application->run() phar:///home/travis/bin/coveralls/bin/coveralls:21
    PHP   4. Symfony\Component\Console\Application->doRun() phar:///home/travis/bin/coveralls/vendor/symfony/console/Symfony/Component/Console/Application.php:106
    PHP   5. Symfony\Component\Console\Command\Command->run() phar:///home/travis/bin/coveralls/vendor/symfony/console/Symfony/Component/Console/Application.php:193
    PHP   6. Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand->execute() phar:///home/travis/bin/coveralls/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:239
    PHP   7. Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand->executeApi() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Command/CoverallsV1JobsCommand.php:114
    PHP   8. Satooshi\Bundle\CoverallsV1Bundle\Repository\JobsRepository->persist() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Command/CoverallsV1JobsCommand.php:161
    PHP   9. Satooshi\Bundle\CoverallsV1Bundle\Repository\JobsRepository->send() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Repository/JobsRepository.php:68
    PHP  10. Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs->send() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Repository/JobsRepository.php:154
    PHP  11. Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs->upload() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Api/Jobs.php:137
    PHP  12. Guzzle\Http\Message\Request->send() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Api/Jobs.php:157
    PHP  13. Guzzle\Http\Client->send() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php:285
    PHP  14. Guzzle\Http\Curl\CurlMulti->send() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php:467
    PHP  15. Guzzle\Http\Curl\CurlMulti->beforeSend() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:279
    PHP  16. Guzzle\Http\Curl\CurlMulti->createCurlHandle() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:343
    PHP  17. Guzzle\Http\Curl\CurlHandle::factory() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:359
    PHP  18. curl_setopt_array() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlHandle.php:202
    Deprecated: curl_setopt_array(): The usage of the @filename API for file uploading is deprecated. Please use the CURLFile class instead in phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlHandle.php on line 202
    Call Stack:
        0.0005     323040   1. {main}() /home/travis/bin/coveralls:0
        0.0031     529728   2. require('phar:///home/travis/bin/coveralls/bin/coveralls') /home/travis/bin/coveralls:12
        0.0086    1472752   3. Symfony\Component\Console\Application->run() phar:///home/travis/bin/coveralls/bin/coveralls:21
        0.0111    1823392   4. Symfony\Component\Console\Application->doRun() phar:///home/travis/bin/coveralls/vendor/symfony/console/Symfony/Component/Console/Application.php:106
        0.0113    1824920   5. Symfony\Component\Console\Command\Command->run() phar:///home/travis/bin/coveralls/vendor/symfony/console/Symfony/Component/Console/Application.php:193
        0.0115    1828288   6. Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand->execute() phar:///home/travis/bin/coveralls/vendor/symfony/console/Symfony/Component/Console/Command/Command.php:239
        0.0188    2945248   7. Satooshi\Bundle\CoverallsV1Bundle\Command\CoverallsV1JobsCommand->executeApi() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Command/CoverallsV1JobsCommand.php:114
        0.0207    3273224   8. Satooshi\Bundle\CoverallsV1Bundle\Repository\JobsRepository->persist() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Command/CoverallsV1JobsCommand.php:161
        0.0367    3644304   9. Satooshi\Bundle\CoverallsV1Bundle\Repository\JobsRepository->send() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Repository/JobsRepository.php:68
        0.0368    3644432  10. Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs->send() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Repository/JobsRepository.php:154
        0.0368    3644728  11. Satooshi\Bundle\CoverallsV1Bundle\Api\Jobs->upload() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Api/Jobs.php:137
        0.0446    4619808  12. Guzzle\Http\Message\Request->send() phar:///home/travis/bin/coveralls/src/Satooshi/Bundle/CoverallsV1Bundle/Api/Jobs.php:157
        0.0446    4619952  13. Guzzle\Http\Client->send() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Message/Request.php:285
        0.0464    4971520  14. Guzzle\Http\Curl\CurlMulti->send() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Client.php:467
        0.0464    4971840  15. Guzzle\Http\Curl\CurlMulti->beforeSend() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:279
        0.0464    4972224  16. Guzzle\Http\Curl\CurlMulti->createCurlHandle() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:343
        0.0464    4973304  17. Guzzle\Http\Curl\CurlHandle::factory() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:359
        0.0468    5001120  18. curl_setopt_array() phar:///home/travis/bin/coveralls/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlHandle.php:202
    
    bug 
    opened by tmatsuo 14
  • Release v0.7.0

    Release v0.7.0

    It's the first time for me to release PHP library. In my understanding, the process will look like follows:

    • PR 1: Update the Changelog and change the version number to 0.7.0
    • Create a release tag v0.7.0 on the master branch
    • Create a phar file and attach it to the release
    • PR 2: Change the version numbers on the master branch to 0.8.0-dev and dev-master alias to 0.8-dev

    @keradus @satooshi @bshaffer

    Please let me know if I miss something.

    opened by tmatsuo 14
  • 422 Unprocessable Entity Couldn't find a repository matching this job

    422 Unprocessable Entity Couldn't find a repository matching this job

    I've had Coveralls running normally in my GitHub Actions workflow for some time. Just today, all of my jobs have started failing with this error:

    422 Unprocessable Entity Couldn't find a repository matching this job

    Example failure and workflow:

    • https://github.com/acquia/cli/actions/runs/3299980625/jobs/5443963666
    • https://github.com/acquia/cli/blob/61a92214485169dafdc40192d6e94bc4d965c2ea/.github/workflows/ci.yml#L64

    I've changed nothing in my repository, something must have changed on the coveralls.io side

    opened by danepowell 1
  • Drop support for php version lower than 7.2

    Drop support for php version lower than 7.2

    According to recent conversation from the PR #337 and @keradus opinion

    I believe we can drop <7.2 by now also, one could upload the coverage with php-coveralls v2.5.3. they will not receive any new versions of php-coveralls, but also not that much is changing in this project and they don't need to run cutting-edge version of php-coveralls, and running legacy PHP version could be bigger problem to start with ;)

    opened by adrenalinkin 0
  • Jenkins sending PR details

    Jenkins sending PR details

    I am using this system to send coveralls data from a Jenkins CI instance, passing in a coverage.xml file.

    I have found that the push to Coveralls misses some useful detail about the build such as:

    • It reports the PR ID instead of the branch name. This is due to how Jenkins mutlibranch git handling works. Instead of using git branch it's necessary to inspect the Jenkins envvar CHANGE_BRANCH which contains the real branch name.
    • The field service_build_url is currently sending the URL of the server, whereas it should send the Jenkins envvar BUILD_URL which links to the specific build
    • I have been told by Coveralls support that to send this as a PR rather than a "push" action it needs the field service_pull_request set; this can come from the Jenkins envvar CHANGE_ID

    As far as I can see for the second two changes we could make these in CliEnvVarsCollector but for the first I am unsure how to override the git branch name. I'm happy to make a PR if we can figure out the best way to achieve it.

    opened by M1ke 1
  • Coveralls fails to gather git info, due to recent git vulnerability detected

    Coveralls fails to gather git info, due to recent git vulnerability detected

    I have a failing builds since a week: https://github.com/T-Regx/T-Regx/runs/6141775917?check_suite_focus=true

    This has already been found and solved in actions/checkout: https://github.com/actions/checkout/issues/760

    Related to: https://github.blog/2022-04-12-git-security-vulnerability-announced/

    opened by Danon 0
  • Support root directory in git commands

    Support root directory in git commands

    php-coverage fetches the wrong GIT information if you have the following directory structure:

    appdir/.git/
    appdir/extensions/myextension/.git/
    

    In that case, the last GIT commit from appdir/.git/ is added to the JSON file and coveralls.io can't show the source code. Instead, it displays:

    The commit SHA "8bac75ac740f8f7f54f51b49f3740cc3ea935b19" was not found in your repository,
    so the file cannot be loaded. This may be because you posted from a local development environment,
    or your CI created an ephemeral commit.
    

    This PR adds support for the root directory parameter in GIT commands, e.g. git -C extensions/myextension log.

    opened by aimeos 0
Releases(v2.5.3)
Complete Pipedrive API client for PHP

Complete Pipedrive API client for PHP Contribute by referral code / link This won't take much time. You could use my referral code or link to get up t

Israel Ortuño 155 Dec 7, 2022
A PHP API client for ConvertKit

ConvertKit PHP API Client Introduction This is an API Client for the ConvertKit mailing list service for PHP versions 7.4 and up There are several cli

null 0 Aug 29, 2022
Enterprise isEven API Client

zonuexe\isEvenApi This package is a modern, high performance, high modularity and strongly static typed enterprise quality API Client of isEven API fo

USAMI Kenta 3 Aug 26, 2021
This document provides the details related to Remittance API. This APIs is used to initiate payment request from Mobile client/others exchange house.

City Bank Remittance API This is where your description should go. Limit it to a paragraph or two. Consider adding a small example. Installation You c

MD ARIFUL HAQUE 2 Oct 2, 2022
SendCloud client for PHP

SendCloud client for PHP Installation composer require guangda/sendcloud Example $mailData = [ 'to'=>'[email protected]', 'subject'=>'test',

Guangda 3 Aug 27, 2021
Bearer client for the PHP programming language

Bearer PHP Client This is the official PHP client for interacting with Bearer.sh. Installation Install the package by running: composer require bearer

Bearer 9 Oct 31, 2022
The most widely used PHP client for RabbitMQ

php-amqplib This library is a pure PHP implementation of the AMQP 0-9-1 protocol. It's been tested against RabbitMQ. The library was used for the PHP

php-amqplib 4.2k Jan 3, 2023
kafka php client

Kafka-php 中文文档 Kafka-php is a pure PHP kafka client that currently supports greater than 0.8.x version of Kafka, this project v0.2.x and v0.1.x are in

Weibo Ad Platform Open Source 1.4k Jan 5, 2023
Artax is an asynchronous HTTP client for PHP based on Amp

Artax is an asynchronous HTTP client for PHP based on Amp. Its API simplifies standards-compliant HTTP resource traversal and RESTful web service consumption without obscuring the underlying protocol. The library manually implements HTTP over TCP sockets; as such it has no dependency on ext/curl.

AMPHP 21 Dec 14, 2022
Grpc go-server php-client

Grpc go-server php-client

凯 1 Jan 24, 2022
Idiomatic PHP client for Google Compute.

Google Compute for PHP Idiomatic PHP client for Google Compute. API Documentation NOTE: This repository is part of Google Cloud PHP. Any support reque

Google APIs 3 Jun 13, 2022
An unofficial EdgeDB PHP client.

Unofficial EdgeDB HTTP PHP client Requirements PHP >= 8.0 (with fileinfo and mbstring) An EdgeDB server instance (tested with 1.0+9ecadfc) Quickstart

T3d 7 Aug 18, 2022
A standalone Amazon S3 (REST) client for PHP 5/CURL

Amazon S3 PHP Class Usage OO method (e,g; $s3->getObject(...)): $s3 = new S3($awsAccessKey, $awsSecretKey); Statically (e,g; S3::getObject(...)): S3::

Donovan Schönknecht 1k Jan 3, 2023
A PHP implementation of RabbitMQ Client for webman plugin.

workbunny/webman-rabbitmq ?? A PHP implementation of RabbitMQ Client for webman plugin. ?? A PHP implementation of RabbitMQ Client for webman plugin 常

workbunny 15 Dec 15, 2022
PHP DataDog StatsD Client

PHP DataDog StatsD Client This is an extremely simple PHP DogStatsD client. Requires PHP >= 5.6.0. See CHANGELOG.md for changes. For a Laravel-specifi

Datadog, Inc. 175 Nov 28, 2022
A PHP MySQL database client class to simplify database access

This lightweight database class is written with PHP and uses the MySQLi extension, it uses prepared statements to properly secure your queries, no need to worry about SQL injection attacks.

Khader Handal 50 Jul 30, 2022
Idiomatic PHP client for Cloud Firestore.

Cloud Firestore for PHP Idiomatic PHP client for Cloud Firestore. API documentation NOTE: This repository is part of Google Cloud PHP. Any support req

Google APIs 151 Dec 10, 2022
Idiomatic PHP client for Memorystore for Memcached.

Memorystore for Memcached for PHP Idiomatic PHP client for Memorystore for Memcached. API documentation NOTE: This repository is part of Google Cloud

Google APIs 1 Mar 20, 2022
Code to accompany the YouTube video "Full PHP cURL API tutorial - how to use a REST API from PHP using cURL"

PHP cURL CRUD Example Example code to accompany this YouTube video. Note that the init_curl.php file contains a placeholder for an API key. DO NOT che

Dave Hollingworth 14 Dec 24, 2022