標籤

PostgreSQL

【tetcontainer】使用 Python 在 Docker 中做資料庫的測試案例 | 來賓: PostgreSQL, Docker, Python, GitHub Actions

前言

這一陣子許多同事除了在內部分享會中分享 Testcontainer 的技術,也有到 JCConf 2021 上分享 - Integration testing with Testcontainers,過往我在寫單元測試(Unit)時,時常都把資料庫的函式都直接擋住(Mock),假裝他是成功的情況下往下走,但在一個 API 中資料庫往往是最容易在緊繃時掛掉,亦或是工程是手癢去改了某個欄位,讓整個服務瞬間炸掉,這些問題都是我們無法控制的部分...因此實際讓資料庫跑在測試時可以有個真的環境可以使用是很重要的一環,雖然看專案規模,測試時間有多有少有長有短,但放著一個 Container/VM 在那邊沒用就是很浪費啊,因此就有本次要介紹的 Test Container。

把 Test Container 分開寫比較懂他是幹嘛的,但在找資料時請以 testcontainer 去找才找得到喔!

Test Container 是一個 Java 的函式庫,支援 JUnit 來做測試,在跑測試時可以幫忙起個容器(Container),並可以放上各式資料庫、Selenium 瀏覽器...等等可以放在 Docker 上面跑的內容,那 Test Container 很好的地方就是他也提供 Python 的解決方案(testcontainers/testcontainers-python),讓我這個 Python 開發者可以有機會在 Docker 裡面很快地起一個 Container 來跑資料庫相關的整合測試,接下來就讓我娓娓道來我踩坑的過程 🖌️

有支援各種程式語言的函示庫喔,大家可以去挖挖看

繼續閱讀

如何在 VSCode 中以 Container 方式開發 FastAPI + PostgreSQL

前言

故事是這樣的,前幾天好像有微軟的開發者日(❓),因此同事在收看完線上影片後分享給我一篇關於在 VSCode 開發 FastAPI+PostgreSQL 的影片,內容主要在講解如何在 VSCode 中以 Container 模式做開發,詳細內容以下會提到。

而因為過往我因為很懶得處理環境問題,因此都快速安裝 Python 後在使用 PyCharm 來協助處理開發問題,在這次看了影片中的使用覺得整體效果非常讚(香 🥰),以下就來介紹一下如何使用以及範例吧!

官方範例是用 Poetry 來管理套件,我則習慣使用 PIP + requirements.txt 來管理

延伸閱讀:

繼續閱讀

【SQL】如何在 pgAdmin 上使用 DDL 快速初始化資料表

前言

當接觸到 PostgreSQL 後 pgAdmin 應該是最常被找到的一個免費 GUI 工具,雖然因為是網站的緣故,很多體驗與桌面版稍嫌落差(跟 postwomen 之餘 postman 一樣),但今天會告訴大家一個滿好用的功能 - DDL,而 DDL 在其他工具上(如 Navicat)上就讓我找不到地方使用,接著就帶大家認識一下 DDL 並透過 pgAdmin 講解使用的過程 🙂

繼續閱讀