diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml new file mode 100644 index 0000000..ae4e79a --- /dev/null +++ b/.github/workflows/phpunit-tests.yml @@ -0,0 +1,46 @@ +name: PHPUnit Tests + +on: + push: + branches: master + paths: + - '**.php' + - 'phpunit.xml.dist' + - '**.neon' + - 'composer.json' + - '.github/workflows/phpunit-tests.yml' + pull_request: + branches: + - master + paths: + - '**.php' + - 'phpunit.xml.dist' + - '**.neon' + - 'composer.json' + - '.github/workflows/phpunit-tests.yml' + workflow_dispatch: + +jobs: + testing: + runs-on: ubuntu-latest + strategy: + matrix: + php-version: [7.4, 8.4] + + steps: + - name: Check out the source code + uses: actions/checkout@v4 + + - name: Set up PHP ${{ matrix.php-version }} + uses: shivammathur/setup-php@v2 + with: + coverage: none + php-version: ${{ matrix.php-version }} + + - name: Install PHP Dependencies + uses: ramsey/composer-install@v3 + with: + dependency-versions: 'highest' + + - name: Run PHPUnit tests + run: composer test diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1b0462d..0000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -# TravisCI configuration for polylang/polylang-phpstan - -if: "branch = master" - -language: "php" -os: - - "linux" -dist: "bionic" - -jobs: - include: - - name: "PHPUnit - PHP 7.4" - php: "7.4" - -cache: - directories: - - "${HOME}/.composer/cache" - -before_install: - - "phpenv config-rm xdebug.ini" - - "export PATH=\"$(composer config --absolute --global bin-dir):${PATH}\"" - -install: - - "composer update" - -script: - - "vendor/bin/phpunit --verbose" - -notifications: - email: - on_success: "never" - on_failure: "change" - slack: - rooms: - - secure: "Ydrk6ilDyS5ymD1qGnHlRYIyyTNnZjjM2ZS7HK/D0n/FXCWNHeOxPzEiyO2QZ5eEtREuceKGBfPiDe - +cG3P4x6kQvS8w8p62hrlMapOJQF2jCxVlczhQmbFgv8FFlKHwyfVhrIGDitDCa+rAzsBRS/cIm6C9YzQ1BQ7zbF2Mfr0c/1hVQ - /0OMVuvqYR71KjV5G6kSe/j57ch4IoB0Emz2TWHAErk204wvXgO+1g55GzI3okufopgdmm8/86D1pc1/Sx/uzrTdHI5/zgLSFbQVIp7+Ib1GaAJmHdG3Ks/8nfJdJOKxfNbaJBSzOCtJjkjW4oa/1Kq6i7qA1vsUj/f4C5Bz0aKZ0D5CMN6zVjVRnmQ9xuhm4uSjV42MGDaR9tqT/QZICOG2rFINgNfvNT6l8cqADWZs200JE+0EDF6apbfihLDIFhjBg8fCaxRZHbHfH541l6TLTGjefZLXusFi1n7iMpt37PbX8WZgRliDxu3f5HA0IW6S4LzFXlaj+qeMbDmxIeNDFdKgA+6/DwC7D28+IjXXISHsR7u5kC7ccAxRKUYTPcN7Jk737UpDYc7a5YKNg1QDRagbQCCRvJyYHLWlFwtNUFu/0dWKUIk+G3FhZfDvkNGUdOpU5DBongCVTT3Hpw2JfsvRkYNkY8VYXNT8H5J0+1ZsNR/aWMmlqo=" diff --git a/composer.json b/composer.json index 2283428..f71a366 100644 --- a/composer.json +++ b/composer.json @@ -8,7 +8,8 @@ "szepeviktor/phpstan-wordpress": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^7 || ^9" + "phpunit/phpunit": "^7 || ^9", + "wpsyntex/polylang-stubs": "dev-master" }, "autoload": { "psr-4": { @@ -16,6 +17,6 @@ } }, "scripts": { - "test":"vendor/bin/phpunit" + "test":"vendor/bin/phpunit -d memory_limit=1G" } } diff --git a/tests/DynamicReturnTypeExtensionTest.php b/tests/DynamicReturnTypeExtensionTest.php index 661a9d8..74def12 100644 --- a/tests/DynamicReturnTypeExtensionTest.php +++ b/tests/DynamicReturnTypeExtensionTest.php @@ -29,7 +29,7 @@ public function testFileAsserts(string $assertType, string $file, ...$args): voi public static function getAdditionalConfigFiles(): array { - // path to your project's phpstan.neon, or extension.neon in case of custom extension packages + // phpstan.neon or extension.neon use relative paths, so we need to use a fake vendor directory regarding szepeviktor/phpstan-wordpress dependency. return [dirname(__DIR__) . '/vendor/wpsyntex/polylang-phpstan/extension.neon']; } } diff --git a/tests/bootstrap.php b/tests/bootstrap.php index d53442e..dab0cc5 100644 --- a/tests/bootstrap.php +++ b/tests/bootstrap.php @@ -11,11 +11,9 @@ if (! is_dir($helperDirectory)) { mkdir($helperDirectory, 0777, true); } -if ( ! file_exists( $helperDirectory . '/extension.neon' ) ) { - copy(dirname(__DIR__) . '/extension.neon', $helperDirectory . '/extension.neon'); -} -if ( ! file_exists( $helperDirectory . '/bootstrap.php' ) ) { - copy(dirname(__DIR__) . '/bootstrap.php', $helperDirectory . '/bootstrap.php'); -} + +// Copy package to a fake vendor directory. +copy(dirname(__DIR__) . '/extension.neon', $helperDirectory . '/extension.neon'); +copy(dirname(__DIR__) . '/bootstrap.php', $helperDirectory . '/bootstrap.php'); require_once dirname(__DIR__) . '/vendor/autoload.php';