dotnet 测试未在 docker 中使用 --no-build 标志运行

Dmi*_*min 7 unit-testing nuget docker .net-core

我有一个单元测试(dotnet 应用程序),我在 docker 容器中运行下一个命令:“dotnet test mytest.csproj --no-build /p:CollectCoverage=true ...”。最终我没有得到测试结果。当需要下载 nuget 包时,我使用标志 --no-build 来删除网络上的额外负载(它仅发生在 docker 映像中)。

在测试之前,我创建一个 docker 映像,在其中构建测试的项目。然后,当我在容器内运行测试时,我只得到一个状态:“构建成功”,而不是运行测试。如果删除标志“--no-build”,则测试开始。或者,如果在运行测试之前执行“dotnet build”,即使使用标志 --no-build,测试也将运行。

我注意到,如果在 .dll 文件“dotnet test mytest.dll --no-build /p:CollectCoverage=true ...”上运行测试,则测试运行成功,但这里还有另一个问题:没有 cobertura 结果。并且参数 /p:CollectCoverage=true 将无效。

我该如何解决这个问题?

屏幕上不是完整的 Dockerfile,仅包含 dotnet 所需的步骤

在此输入图像描述

pyt*_*kaa 1

检查你的 sln 文件。仅使用 --no-build 标志运行测试的情况可能是由于缺少 test.csproj 的发布或调试配置造成的

例如,如果它只有调试配置,那么这将导致找不到测试:

dotnet build -c Release
dotnet test -c Release --no-build --list-tests
Run Code Online (Sandbox Code Playgroud)

要诊断它,您可以增加详细级别。非常棒的是,这还列出了已执行的测试用例及其状态:

dotnet test -c Release --no-build -v=normal
Run Code Online (Sandbox Code Playgroud)