持续集成
到目前为止,我们只讨论了在本地机器上从命令行运行测试。但是,您也可以从您选择的 CI 平台运行测试。由于 pestphp/pest
包含在您的 Composer 开发依赖项中,因此您可以轻松地在 CI 平台的部署管道中执行 vendor/bin/pest --ci
命令。
GitHub Actions 示例
如果您的应用程序使用 GitHub Actions 作为其 CI 平台,则以下指南将帮助您配置 Pest,以便在有人将提交推送到您的 GitHub 存储库时自动测试您的应用程序。
首先,在 your-project/.github/workflows
目录中创建一个 tests.yml
文件。该文件应包含以下内容:
1name: Tests 2 3on: ['push', 'pull_request'] 4 5jobs: 6 ci: 7 runs-on: ubuntu-latest 8 9 steps:10 - name: Checkout11 uses: actions/checkout@v312 13 - name: Setup PHP14 uses: shivammathur/setup-php@v215 with:16 php-version: 8.217 tools: composer:v218 coverage: xdebug19 20 - name: Install Dependencies21 run: composer install --no-interaction --prefer-dist --optimize-autoloader22 23 - name: Tests24 run: ./vendor/bin/pest --ci
当然,您可以根据您的需求自定义以上脚本。例如,如果您的测试需要数据库,则可能需要设置数据库。
创建 tests.yml
文件后,提交并推送该文件,以便 GitHub Actions 可以运行您的测试。请记住,一旦您进行此提交,您的测试套件将在所有新的拉取请求和提交上执行。
GitLab CI/CD 管道示例
如果您的应用程序使用 GitLab CI/CD 管道 作为其 CI 平台,则以下指南将帮助您配置 Pest,以便在有人将提交推送到您的 GitLab 存储库时自动测试您的应用程序。
首先,将以下配置添加到您的 .gitlab-ci.yml
文件中。该文件应包含以下内容:
1stages: 2 - build 3 - test 4 5build:vendors: 6 stage: build 7 only: 8 refs: 9 - merge_requests10 - push11 cache:12 key:13 files:14 - composer.lock15 policy: pull-push16 image: composer:217 script:18 - composer install --no-interaction --prefer-dist --optimize-autoloader19 20tests:21 stage: test22 only:23 refs:24 - merge_requests25 - push26 cache:27 key:28 files:29 - composer.lock30 policy: pull31 image: php:8.232 script:33 - ./vendor/bin/pest --ci
当然,您可以根据您的需求自定义以上脚本。例如,如果您的测试需要数据库,则可能需要设置数据库。
创建 .gitlab-ci.yml
文件后,提交并推送该文件,以便 Gitlab CI/CD 管道可以运行您的测试。请记住,一旦您进行此提交,您的测试套件将在所有新的合并请求和提交上执行。
Bitbucket Pipelines 示例
如果您的应用程序使用 Bitbucket CI/CD Pipelines 作为其 CI 平台,则以下指南将帮助您配置 Pest,以便在有人将提交推送到您的 Bitbucket 存储库时自动测试您的应用程序。
首先,将以下配置添加到您的 bitbucket-pipelines.yml
文件中。该文件应包含以下内容:
1image: composer:2 2 3pipelines: 4 default: 5 - parallel: 6 - step: 7 name: Test 8 script: 9 - composer install --no-interaction --prefer-dist --optimize-autoloader10 - ./vendor/bin/pest11 caches:12 - composer
当然,您可以根据您的需求自定义以上脚本。例如,如果您的测试需要数据库,则可能需要设置数据库。
创建 bitbucket-pipelines.yml
文件后,提交并推送该文件,以便 Bitbucket Pipelines 可以运行您的测试。请记住,一旦您进行此提交,您的测试套件将在所有新的拉取请求和提交上执行。
Chipper CI 示例
如果您的应用程序使用 Chipper CI 作为其 CI 平台,则以下指南将帮助您配置 Pest,以便在有人将提交推送到您的 Git 存储库时自动测试您的应用程序。
首先,将以下配置添加到您的 .chipperci.yml
文件中。该文件应包含以下内容:
1version: 1 2 3environment: 4 php: 8.2 5 node: 16 6 7# Optional services 8services: 9# - mysql: 810# - redis:11 12# Build all commits13on:14 push:15 branches: .*16 17pipeline:18 - name: Setup19 cmd: |20 cp -v .env.example .env21 composer install --no-interaction --prefer-dist --optimize-autoloader22 php artisan key:generate23 24 - name: Compile Assets25 cmd: |26 npm ci --no-audit27 npm run build28 29 - name: Test30 cmd: pest
除了处理 Composer 和 NPM 缓存之外,Chipper CI 还自动将 vendor/bin
添加到您的 PATH 中,因此在运行测试时只需运行 pest --ci
命令即可。
当然,您可以根据您的需求自定义以上脚本。例如,如果您的测试需要数据库,则可能需要定义一个 数据库服务。
创建 .chipperci.yml
文件后,提交并推送该文件,以便 Chipper CI 可以运行您的测试。请记住,一旦您进行此提交,您的测试套件将在所有新的提交上执行。
为您的项目设置持续集成以确保代码库稳定性,做得很好!现在,让我们更深入地了解 Pest 的概念,探索其测试配置功能:配置 Pest →