xUnit 使用 FluentDocker 透過 docker-compose.yml 建立 MongoDB 的 Docker Image 和 Docker Container

前一篇「xUnit 完全使用 FluentDocker 建立 MongoDB 的 Docker Image 和 Docker Container」裡用了兩個步驟分別建立 docker-image 和 docker-container,而建立 docker-image  是透過執行 docker-compose.yml  的方式。

如果不想要這麼麻煩地分成兩步驟,而是想要執行一次 docker-compose 就完成 docker-image 和 docker-container 的建立,這篇文章就來簡單說明如何進行。

...繼續閱讀 »

建立測試用 Container 前先建立 Docker Image - 使用 FluentDocker

前一篇文章說明了在進行 Repository  時使用 Testcontainer  建立測試用 MS SQL Server  容器

如果另外一個專案並非使用 MS SQL Server  而是使用 MongoDB,而且為了測試需要必須要使用自己所打包好的 Docker Image  來建立容器,

Testcontainers 是有提供 Docker Image Build  的功能,但是我卻在建立 Docker Image  時一直出現錯誤,

在無法使用 Testcontainers 解決問題的情況下,我又想起了之前一直在用的 FluentDocker,FluentDocker  有支援 Docker Compose  功能,

於是這就是這篇文章所要說明的內容

...繼續閱讀 »

Repository 測試使用 LocalDB - Part.4

本來應該在 Part.3 這一篇就應該做個完結,但還是有一件事情要交代,所以又開了一篇來做說明,這一篇會有關於前陣子所發的文章「準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script」有關,在「Repository 測試使用 LocalDB - Part.3」裡面所使用的是 CSV 匯入測試資料,而接著就會說明使用 Insert SQL Command 的方式匯入測試資料的做法。

...繼續閱讀 »

Repository 測試使用 LocalDB - Part.3

接續上一篇「Repository 測試使用 LocalDB - Part.2 」的內容,在上一篇已經完成使用 Entity Framework 建立與移除 LocalDB 的類別和方法,在第一篇「Repository 測試使用 LocalDB - Part.1 」也說明了要受測試的目標類別與方法,另外也建立了要在單元測試裡所使用的測試資料。

這一篇就要完成 Repository 的單元測試,會用到前面兩篇所建立的類別與資料,所以請各位要仔細看清楚囉。

...繼續閱讀 »

Repository 測試使用 LocalDB - Part.1

之前曾經試過以程式碼建立 LocalDB 的方式,例如使用指令碼的方式在執行 Repository 測試前建立 LocalDB、執行測試後再移除 LocalDB,這樣的做法也真的可行,不過卻相當不穩定,當測試全部都執行正確時是不會有問題,但是一旦當一個錯誤發生問題時,建立的 LocalDB instance 就會被鎖住而無法正確釋放、移除,這樣的問題一直困擾著我很久。

接下來的幾篇文章將會介紹一個穩定而且不會發生測試失敗就把 LocalDB 鎖住的方式,藉助 Entity Framework 所提供的類別與方法來完成 Repository 測試的 LocalDB 建立與移除,讓我們能夠以更為簡易的方式來完成 Repositoy 的單元測試。

...繼續閱讀 »

準備 Repository 單元測試的測試資料 - 產生匯入資料的 SQL Script

隨著單元測試的數量越來越多,而且在公司裡所開發的專案大部分還是使用 Dapper 來存取資料,所以 Repository 的單元測試就開始暴增,原本使用 CSV 檔案來匯入測試資料到 LocalDB 的前置作業就會成為讓整體測試作業執行時間緩慢的原因之一。

為了解決使用 CSV 檔案匯入測試資料會因為資料轉換而使得測試時間拉長的情況,所以乾脆使用 SQL Dumper 及 ApexSQL Script 工具匯出 SQL Script 來直接匯入測試資料。

...繼續閱讀 »