来自Docker中的“ dotnet测试”调用的单元测试结果

时间:2019-05-08 03:11:30

标签: docker .net-core azure-devops azure-pipelines

我开始研究Azure Devops及其管道功能,以建立连续集成工作流。我有一个使用以下dockerfile构建我的应用程序的Docker映像的管道:

FROM mcr.microsoft.com/dotnet/core/sdk:2.2-stretch AS build-env

WORKDIR /cicd

# restore (put more volatile, changing projects later in process)
COPY src/WebApp/WebApp.csproj ./src/WebApp/
RUN dotnet restore src/WebApp/WebApp.csproj -s http://mycontainerrepo.acme.com/repository/nuget/

COPY tests/WebApp.Test/WebApp.Test.csproj ./tests/WebApp.Test/
RUN dotnet restore tests/WebApp.Test/WebApp.Test.csproj -s http://mycontainerrepo.acme.com/repository/nuget/

# copy source
COPY . .

# test (if tests fail, no final image, yay)
RUN dotnet test tests/WebApp.Test/WebApp.Test.csproj

# publish
RUN dotnet publish src/WebApp/WebApp.csproj -o /publish

# runtime stage
FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-stretch-slim AS release
COPY --from=build-env /publish /publish
WORKDIR /publish
ENTRYPOINT ["dotnet", "WebApp.dll"]

运行dotnet test的调用执行得很好,并将结果输出到控制台,但是我不知道有任何方法可以在管道中使用此结果。在TeamCity中,您可以设置一个environment variable来欺骗它,以输出测试结果(我认为,仅xUnit ...)。但是不确定这里是否有类似的窍门...

我在Github上看到this post打算制作一个单独的测试图像以供测试,但我希望避免使用该方法,除非这是我唯一的选择。

还有其他CI / CD Azure Devops专家吗?

0 个答案:

没有答案