diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml new file mode 100644 index 0000000..1467455 --- /dev/null +++ b/.github/workflows/coverage.yml @@ -0,0 +1,62 @@ +name: Coverage + +on: + push: + branches: [ '**' ] + pull_request: + branches: [ '**' ] + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php: ['7.4'] + setup: ['stable'] + + name: PHP + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + tools: composer:v2 + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v2 + with: + path: vendor + key: ${{ runner.os }}-${{ matrix.setup }}-v2-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.setup }}-v2-php-${{ matrix.php }}- + + - name: Code Climate Test Reporter Preparation + if: ${{ env.CC_TEST_REPORTER_ID != '' }} + run: | + curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter + chmod +x ./cc-test-reporter + ./cc-test-reporter before-build + env: + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} + + - name: Install dependencies + if: steps.composer-cache.outputs.cache-hit != 'true' + run: composer update --prefer-dist --prefer-${{ matrix.setup }} --no-progress --no-interaction + + - name: Run test suite + run: vendor/bin/phpunit -c tests/phpunit-travis.xml --coverage-text --coverage-clover=coverage.xml + + - name: Code Climate Test Reporter + if: ${{ env.CC_TEST_REPORTER_ID != '' }} + run: | + cp coverage.xml clover.xml + bash <(curl -s https://codecov.io/bash) + ./cc-test-reporter after-build --coverage-input-type clover --exit-code 0 + env: + CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..8f4030b --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,55 @@ +name: Tests + +on: + push: + branches: [ '**' ] + pull_request: + branches: [ '**' ] + +jobs: + test: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + php: ['5.5', '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1'] + renderer: ['talesoft/tale-pug:^1.5', 'pug-php/pug:^2.7.6', 'pug-php/pug:^3.4.1'] + setup: ['lowest', 'stable'] + include: + - php: 5.4 + renderer: pug-php/pug:^2.7.6 + setup: lowest + - php: 5.4 + renderer: pug-php/pug:^2.7.6 + setup: stable + + name: PHP ${{ matrix.php }} - ${{ matrix.renderer }} - ${{ matrix.setup }} + + steps: + - uses: actions/checkout@v2 + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: ${{ matrix.php }} + tools: composer:v2 + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v2 + with: + path: vendor + key: ${{ runner.os }}-${{ matrix.setup }}-php-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-${{ matrix.setup }}-php-${{ matrix.php }}- + + - name: Install dependencies + if: steps.composer-cache.outputs.cache-hit != 'true' + run: | + composer require ${{ matrix.renderer }} --no-update + ${{ matrix.php >= 8 && 'composer require --no-update phpunit/phpunit:^8.5.15 --no-interaction;' || '' }} + composer update --prefer-dist --prefer-${{ matrix.setup }} --no-progress --no-interaction ${{ matrix.php >= 8.1 && '--ignore-platform-req=php' || '' }} + + - name: Run test suite + run: vendor/bin/phpunit -c tests/phpunit-travis.xml --no-coverage --verbose diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 921e91b..0000000 --- a/.travis.yml +++ /dev/null @@ -1,66 +0,0 @@ -language: php - -matrix: - include: - - php: 5.4 - env: RENDERER='pug-php/pug:^2.7' - - php: 5.5 - env: RENDERER='pug-php/pug:^2.7' - - php: 5.5 - env: RENDERER='pug-php/pug:^3.0' - - php: 5.5 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 5.6 - env: RENDERER='pug-php/pug:^2.7' - - php: 5.6 - env: RENDERER='pug-php/pug:^3.0' - - php: 5.6 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 7.0 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.0 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.1 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.0 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 7.1 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.2 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.2 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.2 - env: RENDERER='talesoft/tale-pug:^1.5' - - php: 7.3 - env: RENDERER='pug-php/pug:^2.7' - - php: 7.3 - env: RENDERER='pug-php/pug:^3.0' - - php: 7.3 - env: RENDERER='talesoft/tale-pug:^1.5' - -sudo: false - -cache: - directories: - - vendor - -install: - - travis_retry composer self-update && composer --version - - travis_retry composer remove pug-php/pug --no-update - - travis_retry composer require "${RENDERER}" --no-update - - echo "$(cat composer.json)" - - travis_retry composer install --prefer-dist --no-interaction - -script: - - vendor/bin/phpunit -c tests/phpunit-travis.xml --verbose --coverage-text --coverage-clover=coverage.xml - -after_script: - - if [[ $RENDERER == "pug-php/pug:^3.0" && ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]]; then vendor/bin/test-reporter --coverage-report coverage.xml; fi; - -after_success: - - if [[ $RENDERER == "pug-php/pug:^3.0" && ${TRAVIS_PHP_VERSION:0:3} == "5.6" ]]; then bash <(curl -s https://codecov.io/bash); fi; - -addons: - code_climate: - repo_token: 35495c5c91469e666036f0eb22630945ddeeddd13c10745986d7e8be7b83a318 diff --git a/composer.json b/composer.json index 0e65164..b25323d 100644 --- a/composer.json +++ b/composer.json @@ -33,14 +33,13 @@ }, "require": { "php": ">=5.4.0", - "yiisoft/yii2": "^2.0", - "pug-php/pug": "^2.7 || ^3.0" + "yiisoft/yii2": "^2.0.13", + "pug-php/pug": "^2.7.6 || ^3.4.1" }, "require-dev": { - "yidas/yii2-composer-bower-skip": "^2.0", - "yiisoft/yii2-bootstrap": "^2.0", - "phpunit/phpunit": ">=4.8.35 <6.0", - "codeclimate/php-test-reporter": ">=0.3" + "yidas/yii2-composer-bower-skip": "^2.0.13", + "yiisoft/yii2-bootstrap": "^2.0.10", + "phpunit/phpunit": "^8.5.15" }, "autoload": { "psr-4": { diff --git a/tests/unit/TestCase.php b/tests/unit/TestCase.php index fc99541..f5eaf76 100644 --- a/tests/unit/TestCase.php +++ b/tests/unit/TestCase.php @@ -12,23 +12,27 @@ namespace Pug\Yii\Tests; +use ReflectionMethod; use yii\helpers\ArrayHelper; -abstract class TestCase extends \PHPUnit_Framework_TestCase +$setUp = @new ReflectionMethod('PHPUnit\\Framework\\TestCase', 'setUp'); +$testCaseInitialization = true; + +require $setUp && method_exists($setUp, 'hasReturnType') && $setUp->hasReturnType() + ? __DIR__ . '/TestCaseTyped.php' + : __DIR__ . '/TestCaseUntyped.php'; + +unset($testCaseInitialization); + +class TestCase extends TestCaseTypeBase { public static $params; - protected function setUp() + protected function prepareTest() { - parent::setUp(); $this->mockApplication(); } - protected function tearDown() - { - parent::tearDown(); - } - /** * Populates Yii::$app with a new application * The application will be destroyed on tearDown() automatically. diff --git a/tests/unit/TestCaseTyped.php b/tests/unit/TestCaseTyped.php new file mode 100644 index 0000000..55ec4ed --- /dev/null +++ b/tests/unit/TestCaseTyped.php @@ -0,0 +1,34 @@ +prepareTest(); + } + + protected function tearDown(): void + { + $this->finishTest(); + } +} +// @codeCoverageIgnoreEnd diff --git a/tests/unit/TestCaseUntyped.php b/tests/unit/TestCaseUntyped.php new file mode 100644 index 0000000..3d1282e --- /dev/null +++ b/tests/unit/TestCaseUntyped.php @@ -0,0 +1,34 @@ +prepareTest(); + } + + protected function tearDown() + { + $this->finishTest(); + } +} +// @codeCoverageIgnoreEnd diff --git a/tests/unit/renderer/MainTest.php b/tests/unit/renderer/MainTest.php index b3ca818..79f3754 100644 --- a/tests/unit/renderer/MainTest.php +++ b/tests/unit/renderer/MainTest.php @@ -16,10 +16,8 @@ class MainTest extends \Pug\Yii\Tests\TestCase { - public function tearDown() + public function finishTest() { - parent::tearDown(); - $cachePath = $this->getCachePath(); FileHelper::removeDirectory($cachePath);