Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

phuocbt's avatar

Test converage laravel with sonarqube

I want to run ci/cd on gitlab, to run laravel converage tests and push converage.xml to sonarqube but mine doesn't work?

stages:
#  - sonarqube-check
#  - test
#  - deploy
    - test-converage
    - push-converage

cache:
    paths:
        - laravel/vendor/
        - laravel/node_modules/
    
test_converage:
    stage: test-converage
    image: php:8.3.1-cli
    services:
        - mysql:5.7
    variables:
        MYSQL_DATABASE: laravel_test
        MYSQL_USER: user
        MYSQL_PASSWORD: secure_password
        MYSQL_ROOT_PASSWORD: root_password
        DB_HOST: mysql
        DB_CONNECTION: mysql
        DB_DATABASE: laravel_test
        DB_USERNAME: user
        DB_PASSWORD: secure_password
    before_script:
        - apt-get update 
        - apt install nodejs -yqq
        - apt install npm -yqq
        - apt-get install -yqq unzip zip zlib1g-dev libpng-dev libjpeg-dev libfreetype6 libfreetype6-dev libzip-dev
        - if ! php -m | grep -q 'xdebug'; then pecl install xdebug && docker-php-ext-enable xdebug; fi
        - echo "xdebug.mode=coverage" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
        - echo "zend_extension=xdebug.so" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
        - docker-php-ext-install gd exif zip pdo_mysql
        - curl -sS https://getcomposer.org/installer | php
        - mv composer.phar /usr/local/bin/composer
        - composer -v
        - php -v
        - php -m
        - cd laravel
        - composer update
        - npm install
        - cp .env.example .env
        - php artisan key:generate
        - php artisan config:clear
        - php artisan migrate --env=testing --seed
    script:
        - npm run build
        - vendor/bin/phpunit --coverage-clover coverage.xml
    tags:
        - sonarqube-4
    only:
        - develop

sonarqube-check:
    stage: push-converage
    image:
        name: sonarsource/sonar-scanner-cli:latest
        entrypoint: [""]
    variables:
        SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar"
        GIT_DEPTH: "0"
    cache:
        key: "${CI_JOB_NAME}"
        paths:
        - .sonar/cache
    tags:
        - sonarqube-4
    script:
        - sonar-scanner -X -Dsonar.php.coverage.reportPaths=$(pwd)/laravel/coverage.xml
    allow_failure: true
    only:
        - develop
 
0 likes
0 replies

Please or to participate in this conversation.