找不到testhost.dll。请发布您的测试项目,然后重试。 (.Net Core 2.1)

时间:2019-09-03 19:06:12

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

我有一个C#(Selenium + NUnit + Specflow).Net Core 2.1项目(vs 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

enter image description here

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

enter image description here

  1. 当在计算机上的命令行上运行时,它运行良好(由于安装了VS,因此在我的计算机上运行时不需要testhost.dll)

enter image description here

  1. 在Azure Pipeline中运行时,它失败,说明找不到testhost.dll(这是有道理的,因为它从未被复制到bin目录。不过不确定为什么它没有被添加到bin中) enter image description here

2 个答案:

答案 0 :(得分:2)

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

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

enter image description here


这些是我遵循的说明。他们实际上真的很好。在将其集成到软件管道之前,我用它来适应以天蓝色运行测试项目的舒适性。您会看到11:33分钟显示测试需要在工作中执行“发布”步骤。 How to Run .NET Core Selenium Tests in Azure DevOps

答案 1 :(得分:0)

只需在执行测试之前运行Publish任务(dotnetmsbuild),然后使用发布位置中的测试库即可。