在去年 10 月寫了這一篇文「Repository 測試使用 Testcontainers」,不過文章裡只有公開部分的程式碼類別,可能會讓有些人想跟著實做卻會遇到做不出來的狀況。
但因為實際的程式原始碼已經不在了,所以我就重做了一個新的專案,盡量還原當時的範例專案,之前文章裡的測試專案是使用 MSTest,而這個新建立的專案則是提供了 xUnit 與 MSTest 兩種測試專案,讓使用這兩種測試框架的開發人員可以參考。
程式原始碼
https://github.com/kevintsengtw/RepositoryTests_with_Testcontainers/tree/main
關連文章
簡單說明
重新寫的範例專案是使用 .NET 8,測試專案分別使用 xUnit 與 MSTest
Sample.WebApplication 專案所使用的 Table「Shippers」Create Schema Script 如下
CREATE TABLE Sample.dbo.Shippers (
ShipperID int IDENTITY,
CompanyName nvarchar(40) NOT NULL,
Phone nvarchar(24) NULL,
CONSTRAINT PK_Shippers PRIMARY KEY CLUSTERED (ShipperID)
)
ON [PRIMARY]
以下兩個測試專案都會使用到 Docker,並透過 Testcontainers-Dotnet 建立 mcr.microsoft.com/mssql/server:2017-latest 的 container 進行測試,所以要在開發環境裡先安裝好 Docker 環境以及事先拉取 image。
Sample.WebApplicationTests
這個測試專案是使用 xUnit,有使用到的 NuGet Packages 如下
Sample.WebApplicationTests_MSTest
這個測試專案是使用 MSTest,就是重寫「Repository 測試使用 Testcontainers」裡的範例專案,有使用到的 NuGet Packages 如下
測試執行結果
以上
純粹是在寫興趣的,用寫程式、寫文章來抒解工作壓力