diff --git a/.github/workflows/pull_request_phpunit_tests.yml b/.github/workflows/pull_request_phpunit_tests.yml index 8e33e244..45b9b747 100644 --- a/.github/workflows/pull_request_phpunit_tests.yml +++ b/.github/workflows/pull_request_phpunit_tests.yml @@ -49,5 +49,14 @@ jobs: - name: Ejecutar migraciones y seeds run: php artisan migrate --seed - - name: Ejecutar pruebas unitarias - run: php artisan test + - name: Ejecutar pruebas unitarias y verificar cobertura + run: | + base_branch=develop + files_changed=$(git diff --name-only $base_branch) + phpunit --coverage-text --coverage-clover=coverage.xml --coverage-diff=coverage.diff ${files_changed[@]} + coverage=$(php -r '$xml = simplexml_load_file("coverage.xml"); echo $xml->project->metrics["coveredelements"];') + coverage_threshold=80 + if [ "$coverage" -lt "$coverage_threshold" ]; then + echo "Error: Coverage over new and updated code should be over 80% (now $coverage%)." + exit 1 + fi