【问题标题】:Unable to find testhost.dll. Please publish your test project and retry. (.Net Core 2.1)找不到 testhost.dll。请发布您的测试项目并重试。 (.Net Core 2.1)
【发布时间】:2020-01-06 16:49:27
【问题描述】:

我有一个 C#(selenium + NUnit + Specflow).Net Core 2.1 项目(与 2017 相比)。

我的项目引用了包含 testhost.dll 的 Microsoft.TestPlatform.TestHost nuget。测试在我的计算机上运行,​​但是当我尝试在 Azure DevOps 中运行它们时,它们会因错误“无法找到 testhost.dll”而失败。

这是有道理的,因为当我在我的计算机上构建项目时,尽管项目引用了包含 testhost.dll 的 Microsoft.TestPlatform.TestHost nuget,但 testhost.dll 并未添加到 bin 目录中。

问题:为什么 testhost.dll 在构建时没有被添加到 bin 目录中?

注意:我查看了有关此错误消息的其他帖子,大多数时候他们的问题是他们没有引用程序集。但是,我引用的是 nuget。

  1. 项目确实引用了 testhost.dll

  1. Microsoft.TestPlatform.TestHost 位于 *.csproj 文件中

  1. 在我的电脑命令行上运行时运行良好(在我的机器上运行时不需要testhost.dll,因为安装了VS)

  1. 在 Azure Pipeline 中运行时,无法找到 testhost.dll(这是有道理的,因为它永远不会被复制到 bin 目录。不知道为什么它没有被添加到 bin 中)

【问题讨论】:

    标签: c# .net-core azure-devops nunit .net-assembly


    【解决方案1】:

    这很可能是问题所在。我将文件复制到工件而不是发布。我会测试一下,看看这是否有效。尝试后将更新此帖子。 [更新:是的,问题是我需要发布才能将所需的 *.dll 放入 bin 目录中]

    图片中的答案来自以下github page


    这些是我遵循的说明。他们实际上真的很好。在将其集成到软件管道之前,我使用它来轻松地在 azure 中运行测试项目。您将看到 11:33 分钟显示测试需要在作业中包含“发布”步骤。 How to Run .NET Core Selenium Tests in Azure DevOps

    【讨论】:

    • 非常感谢分享的这个答案。请将此答案标记为已解决,以便其他 SO 用户能够查看该解决方案是否有效:-)
    【解决方案2】:

    只需在测试执行前运行Publish 任务(dotnetmsbuild)并使用您发布位置的测试库。

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 2021-06-14
      • 1970-01-01
      • 2020-01-23
      • 1970-01-01
      • 2019-03-20
      • 2018-10-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多