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會員
528內容數
歡迎來到 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
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
透過蝦皮分潤計畫,輕鬆賺取零用金!本文分享5-6月實測心得,包含數據流程、實際收入、平臺優點及注意事項,並推薦高分潤商品,教你如何運用空閒時間創造被動收入。
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
單身的人有些會養寵物,而我養植物。畢竟寵物離世會傷心,植物沒養好再接再厲就好了~(笑)
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
不知你有沒有過這種經驗?衛生紙只剩最後一包、洗衣精倒不出來,或電池突然沒電。這次一次補貨,從電池、衛生紙到洗衣精,還順便分享使用心得。更棒的是,搭配蝦皮分潤計畫,愛用品不僅自己用得安心,分享給朋友還能賺回饋。立即使用推薦碼 X5Q344E,輕鬆上手,隨時隨地賺取分潤!
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
Thumbnail
身為一個典型的社畜,上班時間被會議、進度、KPI 塞得滿滿,下班後只想要找一個能夠安靜喘口氣的小角落。對我來說,畫畫就是那個屬於自己的小樹洞。無論是胡亂塗鴉,還是慢慢描繪喜歡的插畫人物,那個專注在筆觸和色彩的過程,就像在幫心靈按摩一樣,讓緊繃的神經慢慢鬆開。
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
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News