Skip to content

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

Open
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions