Skip to content

Code coverage is tricky to set up and references deprecated flags #59

@shish

Description

@shish

It would be nice if just specifying coverage_* automatically did whatever it needed, so I try that

    - uses: php-actions/phpunit@v3
      with:
        version: 10
        php_version: ${{ matrix.php }}
        php_extensions: xdebug
        coverage_text: true
        bootstrap: vendor/autoload.php
        args: tests
1) XDEBUG_MODE=coverage or xdebug.mode=coverage has to be set

There are no instructions about how to set either of these flags, but by blind guessing I manage to figure it out:

    - uses: php-actions/phpunit@v3
      with:
        version: 10
        php_version: ${{ matrix.php }}
        php_extensions: xdebug
        coverage_text: true
        bootstrap: vendor/autoload.php
        args: tests
      env:
        XDEBUG_MODE: coverage
1) No filter is configured, code coverage will not be processed

Ok I need a filter -- The README mentions a whitelist parameter that seems to be what I want

    - uses: php-actions/phpunit@v3
      with:
        version: 10
        php_version: ${{ matrix.php }}
        php_extensions: xdebug
        coverage_text: true
        bootstrap: vendor/autoload.php
        whitelist: src
        args: tests
      env:
        XDEBUG_MODE: coverage
Unknown option "--whitelist"

Ok, looks like a few years ago whitelist was replaced with coverage-filter

    - uses: php-actions/phpunit@v3
      with:
        version: 10
        php_version: ${{ matrix.php }}
        php_extensions: xdebug
        coverage_text: true
        bootstrap: vendor/autoload.php
        coverage_filter: src
        args: tests
      env:
        XDEBUG_MODE: coverage
Warning: Unexpected input(s) 'coverage_filter', valid inputs are ['version', 'php_version', 'php_extensions', 'vendored_phpunit_path', 'configuration', 'log_junit', 'log_teamcity', 'testdox_html', 'testdox_text', 'memory_limit', 'bootstrap', 'filter', 'testsuite', 'group', 'exclude_group', 'test_suffix', 'whitelist', 'coverage_clover', 'coverage_cobertura', 'coverage_crap4j', 'coverage_html', 'coverage_php', 'coverage_text', 'coverage_xml', 'args']

Ok, so the action hasn't been updated to be compatible with the last few major releases, let's try args

    - uses: php-actions/phpunit@v3
      with:
        version: 10
        php_version: ${{ matrix.php }}
        php_extensions: xdebug
        coverage_text: true
        bootstrap: vendor/autoload.php
        args: --coverage-filter src tests
      env:
        XDEBUG_MODE: coverage

Success \o/

And now let's try using that coverage - The README mentions https://github.com/php-actions/code-coverage ... which is 404 ;(

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions