bab/tested-routes-checker-bundle

A bundle to ensure all routes of a Symfony application have been tested

Installs: 1 357

Dependents: 0

Suggesters: 0

Security: 0

Stars: 1

Watchers: 0

Forks: 0

Open Issues: 0

Type:symfony-bundle

pkg:composer/bab/tested-routes-checker-bundle

v1.0.1 2025-12-19 19:35 UTC

This package is auto-updated.

Last update: 2026-02-02 18:57:37 UTC


README

A bundle to ensure all routes of a Symfony application have been tested.

Note

This bundle was originally hosted on Tiime-Software organisation. Given the lack of maintenance (see this PR & this one), I decided to create an independant repository in order to give to this project the love it deserves. ♥️

How it works?

  1. Launch your tests using PHPUnit or anything else. All called routes will be stored in var/cache/bab_tested_routes_checker_bundle_route_storage.
  2. Run php bin/console bab:tested-routes-checker:check to have a small report of what's tested and what's not!

Installation

Make sure Composer is installed globally, as explained in the installation chapter of the Composer documentation.

Applications that use Symfony Flex

Open a command console, enter your project directory and execute:

composer require --dev bab/tested-routes-checker-bundle

Applications that don't use Symfony Flex

Step 1: Download the Bundle

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

composer require --dev bab/tested-routes-checker-bundle

Step 2: Enable the Bundle

Then, enable the bundle by adding it to the list of registered bundles in the config/bundles.php file of your project:

// config/bundles.php

return [
    // ...
    Bab\TestedRoutesCheckerBundle\BabTestedRoutesCheckerBundle::class => ['dev' => true, 'test' => true],
];

Configuring your CI

Github actions

If you're using Github actions, simply add the following step to your existing test job:

name: Tests

jobs:
  tests:
    steps:
      # Do your stuff
      # - ...
      # Ensure no new untested route have been introduced
      - name: Run Bab/TestedRoutesCheckerBundle
        run: bin/console bab:tested-routes-checker:check

View a fully working example in altercampagne/eventoj repository.

If you have several jobs to run all your tests, that's not a problem! 👌

  1. Upload an artifact containing all tested routes after each of your job
jobs:
  tests:
    steps:
      # Do your stuff
      # - ...
      - name: Save tested routes
        uses: actions/upload-artifact@v4
        with:
          name: tested-routes-${{ inputs.any-relevant-discriminent }}
          path: var/cache/bab_tested_routes_checker_bundle_route_storage
  1. Run a new job at the end to concatenate all files & run the command
jobs:
  tested-routes-checker:
    name: Check tested routes
    needs: [your_tests_job]
    steps:
      # Install the project
      # - ...

      - name: Download All Artifacts
        uses: actions/download-artifact@v4
        with:
        path: tested-routes
        pattern: tested-routes-*

      - name: Create var/cache directory to put tested routes files inside
        shell: bash
        run: mkdir -p var/cache

      - name: Merge all tested routes files
        shell: bash
        run: cat tested-routes/tested-routes-*/bab_tested_routes_checker_bundle_route_storage > var/cache/bab_tested_routes_checker_bundle_route_storage

      - name: Check tested routes
        shell: bash
        run: php bin/console bab:tested-routes-checker:check

Using baseline to ignore some routes

You can ignore some routes with a .bab-trc-baseline file with 1 route per line.