持續整合
到目前為止,我們只討論在您本機的命令列上執行測試。但是,您也可以在您選擇的 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
檔案後,提交並推送 tests.yml
檔案,讓 GitHub Actions 可以執行您的測試。請注意,一旦您提交此資料,您的測試套件將在所有新的 pull request 和提交上執行。
與 GitLab CI/CD Pipelines 的範例
如果您的應用程式使用GitLab CI/CD Pipelines作為其 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.yml
檔案,讓 Gitlab CI/CD Pipelines 可以執行您的測試。請注意,一旦您提交此資料,您的測試套件將在所有新的合併請求和提交上執行。
與 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.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
加入你的路徑;因此,只要執行 pest --ci
指令,就能在執行測試時正常運作。
自然地,你可以根據你的需求自訂上述指令碼。例如,如果你在測試中需要,你可能需要定義 資料庫服務。
建立你的 .chipperci.yml
檔案後,認可並推出 .chipperci.yml
檔案,讓 Chipper CI 能執行你的測試。請記住,在你提出此認可時,你的測試套件將執行於所有新的認可。
為你的專案設定持續整合並確保程式碼庫穩定性,做得好!現在,讓我們更深入探討 Pest 的概念,並探索其測試組態功能: 組態 Pest →