用 travis-ci 測試 Laravel 應用程式
前言
雖然寫測試是件麻煩事,但是為了未來著想,最好要為所有自己開發的應用程式進行測試。
在公司開發,可能會使用 Jenkins 之類的工具自建 CI 環境;在個人 open-source 專案中,可能會使用 travis-ci 搭配 GitHub 進行 CI。
在本篇中則使用 travis-ci 對 Laravel 5.1/5.2/5.3 的應用程式進行測試。
Laravel 的安裝
Laravel 5.1:
composer create-project laravel/laravel test-5.1 "5.1.*" --prefer-dist
Laravel 5.2:
composer create-project laravel/laravel test-5.2 "5.2.*" --prefer-dist
Laravel 5.3:
composer create-project laravel/laravel test-5.3 "5.3.*" --prefer-dist
Travis-CI 設定檔
在已經安裝成功的資料夾中,加入 .travis.yml
檔案,內容如下:
language: php
php:
- 5.5
- 5.6
- 7.0
- hhvm
sudo: false
env:
- APP_DEBUG=false
install:
- composer install --prefer-dist --optmize-autoloader --quiet
script: phpunit -c phpunit.xml --coverage-text
註:Laravel 5.2 以後版本僅支援 PHP 5.6 以後版本。
修改 phpunit.xml
在某些情況下,Travis-CI 無法自行生成 Laravel 所必需的 APP_KEY,所以我會習慣在 phpunit.xml 中設定一個假的 APP_KEY 供測試使用。
<env name="APP_ENV" value="testing"/>
<!--新增下一行的內容-->
<env name="APP_KEY" value="base64:BIA6BnBltNrrj13PiFvmCuhZZHXjgnc/DXjKIPFtaZQ"></env>
<!--新增上一行的內容-->
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
如果不確定可以設定什麼樣的 APP_KEY 值,可以直接從 .env
中複製過來,然後再使用 php artisan key:generate
重新生成一個 KEY 值。
當 KEY 值已經外洩,請「千萬不要」再使用相同的 KEY
本篇文章同步發表於 Chivincent's Blog