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

更新於 發佈於 閱讀時間約 4 分鐘

下載與設定 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

本系列文章目錄

留言
avatar-img
留言分享你的想法!
avatar-img
WilliamP的沙龍
13會員
495內容數
歡迎來到 WilliamP 的沙龍天地,在這裡將與各位讀者探討各種主題,包刮高中數學題庫、PHP開發經驗、LINE聊天機器人開發經驗、書摘筆記等,歡迎交流!
WilliamP的沙龍的其他內容
2023/12/18
在前一篇文章中,我們探討了多重資料庫連線情境下,Model 及 Database Assertion 的應對方式,不過實際上筆者認為比較有難度的,其實是 Migration 應對方式。 今天就讓我們來探討這部分吧! Migration 應對方式 對於多重資料庫連線這種情境,筆者實務上做過的對應
2023/12/18
在前一篇文章中,我們探討了多重資料庫連線情境下,Model 及 Database Assertion 的應對方式,不過實際上筆者認為比較有難度的,其實是 Migration 應對方式。 今天就讓我們來探討這部分吧! Migration 應對方式 對於多重資料庫連線這種情境,筆者實務上做過的對應
2023/12/18
今天讓我們探討「缺乏 Migration Files 與 Factory Files」的 Legacy 情境吧! 很多時候我們會遇到沒有 Migration Files 或 Factory Files 的 Legacy Codebase,原因大概有以下幾種: 該程式庫原本不是以 Laravel
2023/12/18
今天讓我們探討「缺乏 Migration Files 與 Factory Files」的 Legacy 情境吧! 很多時候我們會遇到沒有 Migration Files 或 Factory Files 的 Legacy Codebase,原因大概有以下幾種: 該程式庫原本不是以 Laravel
2023/12/18
在實務情境上,常會有在單一專案程式庫中,存取多個不同資料庫的使用情境,在這種情況下,我們通常會設置多個資料庫連線(Database Connection)設定。 在平常開發使用設很方便,但要做測試時就會發現一些問題: 在測試程式碼或 Seeder 中調用 factory() 時,都是在預設連線資
2023/12/18
在實務情境上,常會有在單一專案程式庫中,存取多個不同資料庫的使用情境,在這種情況下,我們通常會設置多個資料庫連線(Database Connection)設定。 在平常開發使用設很方便,但要做測試時就會發現一些問題: 在測試程式碼或 Seeder 中調用 factory() 時,都是在預設連線資
看更多
你可能也想看
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
孩子寫功課時瞇眼?小心近視!這款喜光全光譜TIONE⁺光健康智慧檯燈,獲眼科院長推薦,網路好評不斷!全光譜LED、180cm大照明範圍、5段亮度及色溫調整、350度萬向旋轉,讓孩子學習更舒適、保護眼睛!
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
創作者營運專員/經理(Operations Specialist/Manager)將負責對平台成長及收入至關重要的 Partnership 夥伴創作者開發及營運。你將發揮對知識與內容變現、影響力變現的精準判斷力,找到你心中的潛力新星或有聲量的中大型創作者加入 vocus。
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
GitLab為程式碼管理倉庫,且從8.0開始提供CI/CD。 安裝 更新套件索引 sudo apt update 安裝postfix sudo apt install ca-certifi​cates curl openssh-server postfix 切換目錄 cd /t
Thumbnail
獲取Image docker pull 查看Image docker images 可以查看REPOSITORY、TAG、IMAGE ID、CREATED與SIZE。 創建Image docker build [OPTIONS] PATH | URL | - 上傳Imag
Thumbnail
獲取Image docker pull 查看Image docker images 可以查看REPOSITORY、TAG、IMAGE ID、CREATED與SIZE。 創建Image docker build [OPTIONS] PATH | URL | - 上傳Imag
Thumbnail
前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
Thumbnail
前言 大家好上次我們教了如何建立自己的 Docker Image,今天我們要來教怎麼把自己做好的 Docker Image 上傳到 Docker Hub,如果以後自己在公司有搭建 Docker Registry,也可以用同樣方式上傳到公司的 Docker Registry 私有倉庫 登入 Doc
Thumbnail
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
前言 大家好上次我們教了如何下載 Docker Image 使用,今天我們要教如何產出自己的 Image,這次會使用一個 Dockerfile 範例,自行打包 Docker Image,初步練習使用 Docker 指令 下載 Dockerfile 教學檔案 在這裡我已經幫忙寫好一個 Docke
Thumbnail
當你安裝完docker,並且設定好所有相關程序後。你正要使用docker去進行操作,讓專案可以在容器哩,方便平台移轉、備份、共用等等等等等;如果你遇到CUDA docker runtime 的問題時,這篇正適合你閱讀。 開始之前,如果你要參考怎麼安裝docker,設定docker環境,請參考:
Thumbnail
當你安裝完docker,並且設定好所有相關程序後。你正要使用docker去進行操作,讓專案可以在容器哩,方便平台移轉、備份、共用等等等等等;如果你遇到CUDA docker runtime 的問題時,這篇正適合你閱讀。 開始之前,如果你要參考怎麼安裝docker,設定docker環境,請參考:
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
Thumbnail
前言 上次講到 Dockerfile、DockerImage、Docker Container 他們之間的關係,今天我們要來熟悉 Docker Image 如何使用,教你如何抓取雲端上的 Docker Image, Docker Image 下載來源 當我們今天要要使用 Docker Imag
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News