Skip to content

xdebug configuration change - breaks coverage reports #105

Open
@robertdeboer

Description

We use this image for running PHPUnit test in as part of our GitLab CI process for projects. Today I have noticed that running PHP Unit configurations with clover reports for coverage no longer creates these reports.

In order to verify if it was something within the docker environment,I have gone to other another project that uses the same image and push a small text file to trigger the CI and confirmed the coverage report is not being created. Looking at past CI pipelines, my last successful run was 1 month ago

image

The next job - ran a week or so after that is when I first see this issue pop up:

image

Using the latest PHPUnit produces the following:
image

When I grep XDebug settings as a pre-script action, I see the following:

/usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini,
xdebug
Support Xdebug on Patreon, GitHub, or as a business: https://xdebug.org/support
xdebug.auto_trace => no value => no value
xdebug.cli_color => 0 => 0
xdebug.client_discovery_header => no value => no value
xdebug.client_host => localhost => localhost
xdebug.client_port => 9003 => 9003
xdebug.cloud_id => no value => no value
xdebug.collect_assignments => Off => Off
xdebug.collect_includes => no value => no value
xdebug.collect_params => no value => no value
xdebug.collect_return => Off => Off
xdebug.collect_vars => no value => no value
xdebug.connect_timeout_ms => 200 => 200
xdebug.coverage_enable => no value => no value
xdebug.default_enable => no value => no value
xdebug.discover_client_host => Off => Off
xdebug.dump.COOKIE => no value => no value
xdebug.dump.ENV => no value => no value
xdebug.dump.FILES => no value => no value
xdebug.dump.GET => no value => no value
xdebug.dump.POST => no value => no value
xdebug.dump.REQUEST => no value => no value
xdebug.dump.SERVER => no value => no value
xdebug.dump.SESSION => no value => no value
xdebug.dump_globals => On => On
xdebug.dump_once => On => On
xdebug.dump_undefined => Off => Off
xdebug.extended_info => no value => no value
xdebug.file_link_format => no value => no value
xdebug.filename_format => no value => no value
xdebug.force_display_errors => Off => Off
xdebug.force_error_reporting => 0 => 0
xdebug.gc_stats_enable => no value => no value
xdebug.gc_stats_output_dir => no value => no value
xdebug.gc_stats_output_name => gcstats.%p => gcstats.%p
xdebug.halt_level => 0 => 0
xdebug.idekey => no value => no value
xdebug.log => no value => no value
xdebug.log_level => 7 => 7
xdebug.max_nesting_level => 256 => 256
xdebug.max_stack_frames => -1 => -1
xdebug.mode => develop => develop
xdebug.output_dir => /tmp => /tmp
xdebug.overload_var_dump => no value => no value
xdebug.profiler_append => Off => Off
xdebug.profiler_enable => no value => no value
xdebug.profiler_enable_trigger => no value => no value
xdebug.profiler_enable_trigger_value => no value => no value
xdebug.profiler_output_dir => no value => no value
xdebug.profiler_output_name => cachegrind.out.%p => cachegrind.out.%p
xdebug.remote_autostart => no value => no value
xdebug.remote_connect_back => no value => no value
xdebug.remote_enable => no value => no value
xdebug.remote_handler => no value => no value
xdebug.remote_host => no value => no value
xdebug.remote_log => no value => no value
xdebug.remote_log_level => no value => no value
xdebug.remote_mode => no value => no value
xdebug.remote_port => no value => no value
xdebug.remote_timeout => no value => no value
xdebug.scream => Off => Off
xdebug.show_error_trace => Off => Off
xdebug.show_exception_trace => Off => Off
xdebug.show_local_vars => Off => Off
xdebug.show_mem_delta => no value => no value
xdebug.start_upon_error => default => default
xdebug.start_with_request => default => default
xdebug.trace_enable_trigger => no value => no value
xdebug.trace_enable_trigger_value => no value => no value
xdebug.trace_format => 0 => 0
xdebug.trace_options => 0 => 0
xdebug.trace_output_dir => no value => no value
xdebug.trace_output_name => trace.%c => trace.%c
xdebug.trigger_value => no value => no value
xdebug.var_display_max_children => 128 => 128
xdebug.var_display_max_data => 512 => 512
xdebug.var_display_max_depth => 3 => 3

Here is the GitLab CI file for the project

stages:
  - test
  - quality
  - deploy

phpunit:
  stage: test
  image: edbizarro/gitlab-ci-pipeline-php:7.4
  before_script:
    - composer install
    - cp .env.example .env
    - php artisan key:generate
  script:
    - ./vendor/bin/phpunit --testdox --verbose --configuration phpunit.xml
  artifacts:
    reports:
      junit: tests/coverage/junit.xml
    paths:
      - tests/coverage/clover.xml
      - tests/coverage/junit.xml
    expire_in: 1 days
  variables:
    GIT_DEPTH: 0
  only:
    - develop
    - master
    - merge_request

To me this looks like a dependency changed it's setup or configuration that the docker image uses, thus changing the environment by accident.

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions