繁体   English   中英

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

[英]dotnet tests not run with flag --no-build in docker

我有一个单元测试(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 所需的步骤

在此处输入图像描述

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

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

dotnet build -c Release
dotnet test -c Release --no-build --list-tests

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

dotnet test -c Release --no-build -v=normal

遇到同样的问题。 将以下属性添加到我的测试项目的 .csproj 文件中解决了该问题:

<Project Sdk="Microsoft.NET.Sdk">
  ...
  <PropertyGroup>
    ...
    <IsTestProject>true</IsTestProject>
    ...
  </PropertyGroup>
  ...
</Project>

对我来说,问题是我没有构建测试代码。 我只构建了我的可执行项目。 现在我首先构建整个解决方案(因此包括我的测试项目在内的所有项目)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM