Dot-Net

如何在 docker 容器中執行 .NET 單元測試

  • November 18, 2021

我有一個包含 MSTest 單元測試的 .NET Core 應用程序。使用這個 Dockerfile 執行所有測試的命令是什麼?

FROM microsoft/dotnet:1.1-runtime
ARG source
COPY . .
ENTRYPOINT ["dotnet", "test", "Unittests.csproj"]

文件夾結構為:

/Dockerfile
/Unittests.csproj
/tests/*.cs

使用安裝了 .NET Core SDK 的基礎映像。例如:

microsoft/dotnet
microsoft/dotnet:1.1.2-sdk

然後執行dotnet test控制台命令。這就是為什麼需要基於 SDK 的映像的原因 - 如果dotnet test沒有 SDK,您將無法在基於執行時的映像中執行。這是一個完全可行的Dockerfile範例:

FROM microsoft/dotnet

WORKDIR /app
COPY . .

RUN dotnet restore

# run tests on docker build
RUN dotnet test

# run tests on docker run
ENTRYPOINT ["dotnet", "test"]

RUN命令在 docker 鏡像建構過程中執行。

ENTRYPOINT命令在 docker 容器啟動時執行。

引用自:https://stackoverflow.com/questions/44252037