PmmpUnit Tests
ActionsTags
(2)This action run your integration tests in workflow using PmmpUnit
You MUST have this folder structure for your suitetest:
tests/pmmpunit
    shared/data # linked to plugin_data
    suitetest
        a_suite # repeat as many as you have suitetest
            config # will be linked to plugin_data
            plugins # plugins to load for this specific suitetest (in more than your plugin)
            tests # folder containing your tests
- uses: ShockedPlot7560/PmmpUnit-actions
  with:
    # Name of your suitetest to run (folder name in your tests/suitetest to take)
    # REQUIRED
    suite-test: ''
    # Path of your test root (where are located your shared and suitetest folder)
    # Default: tests/pmmpunit
    tests-path: ''
    # PHP version to use. (for the list, see the list in PmmpUnit)
    # Default: 8.1
    php-version: ''
    # If you need to pass an env file, give the path
    # Default: .env
    env-file: ''
    # Timeout before the tests failed, this ensured any infinite loop and overcost
    # If your tests take longer, increase it (in seconds)
    # Default: 60 seconds
    timeout: ''
    # If true, a mysql database will be started in parrallel
    # Default: false
    mysql: ""
    # Define the mysql version to use
    # Default: 8.0
    mysql-version: ''
    # File or folder to mount to mysql
    # Composed of sql file, it can create the database for you
    # Default: ''
    mysql-entrypoint: ''failed-tests: The number of failed tests
jobs:
  tests:
    name: Integration tests
    runs-on: ${{ matrix.image }}
    strategy:
      fail-fast: false
      matrix:
        image: [ubuntu-20.04]
        suittest: ["suitetest1", "suitetest2"]
        php: ["8.1", "8.2", "8.3"]
    steps:
        - name: Checkout
          uses: actions/checkout@v4
        - name: Tests
          uses: ShockedPlot7560/PmmpUnit-actions
          with:
            php-version: ${{ matrix.php }}
            suite-test: ${{ matrix.suittest }}PmmpUnit Tests is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.