2023-12-18|閱讀時間 ‧ 約 26 分鐘

PHPUnit 自動化測試大作戰【CH02】

下載與設定 Laradock

首先,讓我們在Home資料夾下,將 Laradock 下載下來:

cd ~ && git clone <https://github.com/Laradock/laradock.git> Laradock

將 Laradock 下載回來後,切換到 Laradock 資料夾下,從樣板複製一份 .env 檔:

cd ~/Laradock

cp .env.example .env

接著開啟 .env 檔,有幾個Key值需要關注:

APP_CODE_PATH_HOST:專案資料夾,指向我們的專案目錄,這邊輸入 ../PHPUnit-test(稍候將在這個地方建立 Laravel 專案)

# Point to the path of your applications code on your host 

APP_CODE_PATH_HOST=../PHPUnit-test

DATA_PATH_HOST:資料路徑,當 Laradock的資料庫容器啟動時,會在這個資料夾下建立相關檔案及資料夾,預設值是 ~/.laradock/data,基本上保持預設值即可。

# Choose storage path on your machine. For all storage systems 

DATA_PATH_HOST=~/.laradock/data

雖然乍看之下,此預設值會在Home資料夾下建立 .laradock 資料夾,但我實際測試時發現,Laradock 會在其所在資料夾下,建立一個名為 ~ 的資料夾,或許是一個神奇的Bug?

PHP_VERSION:PHP版本號,預設為 8.0 ,這裡我們保持預設值

### PHP Version ###########################################  

# Select a PHP version of the Workspace and PHP-FPM containers (Does not apply to HHVM).

# Accepted values: 8.0 - 7.4 - 7.3 - 7.2 - 7.1 - 7.0 - 5.6

PHP_VERSION=8.0

啟動 Laradock Workspace 容器

在 ~/Laradock 目錄下,輸入以下指令,啟動 workspace 容器:

#~/Laradock

docker-compose up -d workspace

workspace 容器是 Laradock 的一個核心容器,可以在這裡執行 composer,之後我們也將在這個容器內執行 PHPUnit

在啟動 workspace 容器的同時, 同時會建立在前面設定的 .env key值: APP_CODE_PATH_HOST 所指向的資料夾(如果原本就已存在,則不會建立)。

進入 Workspace 容器

啟動 workspace 容器後,接著我們要進入此容器內進行後續動作。

剛啟動的 workspace 容器,預設名稱是 laradock-workspace-1 ,讓我們進入此容器:

docker exec -it laradock-workspace-1 bash

如果執行以上指令時,找不到該容器,顯示 Error: No such container: 時,可先用以下指令查詢已啟動的 Docker 容器:

docker ps -a

初始化 Laravel 專案資料夾

進入 workspace 容器後,接著讓我們來初始化專案資料夾吧! (這邊提醒一下,進入容器後,會看到目前所在位置是 /var/www ,對應到本機的路徑就是 ~/PHPUnit-test ,也就是前面 APP_CODE_PATH_HOST 所指向的路徑)

接著我們使用 composer 來初始化 Laravel 專案資料夾:

composer create-project laravel/laravel .

接著就會開始安裝 Laravel 到 ~/PHPUnit-test 資料夾了,這部分會花點時間,可以去泡杯咖啡再回來。

泡完咖啡後,差不多也完成了,應該會到類似以下截圖的畫面:

在初始化 Laravel 專案時,會一併安裝 PHPUnit ,讓我們來測試一下:

./vendor/bin/phpunit

剛裝好的 PHPUnit ,已預寫好2個測試,因此應該會看到類似以下截圖的畫面:

到這邊,我們已經完成環境建置了,給自己一個鼓勵吧!

下一篇來撰寫第一個測試。

如果您喜歡這篇文章,歡迎加入追蹤以接收新文章通知 😄

參考資料:

  1. https://laradock.io/
  2. https://laravel.com/docs/9.x

本系列文章目錄

分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.