C# 如何在Azure DevOps发布管道中使用内置DLL运行测试?

C# 如何在Azure DevOps发布管道中使用内置DLL运行测试?,c#,.net,azure,azure-devops,azure-pipelines-release-pipeline,C#,.net,Azure,Azure Devops,Azure Pipelines Release Pipeline,我有一个Azure DevOps构建管道,它已经工作了很长时间 下面是我如何设置它的: 管道包含恢复、构建、测试和NuGet打包与发布步骤 如屏幕截图所示,集成测试已被停用,因为它们需要一些时间才能完成。因此,我想将集成测试的执行与NuGet发布步骤一起转移到发布管道中 我不知道如何在这样的管道中运行这些集成测试。我认为调用dotnet test会起作用,但它不起作用:该命令需要一个.csproj文件,而不是构建的DLL。在这个阶段,发布管道必须在构建管道提供的工件中工作 正如评论中所建议的

我有一个Azure DevOps构建管道,它已经工作了很长时间

下面是我如何设置它的:

管道包含恢复、构建、测试和NuGet打包与发布步骤

如屏幕截图所示,集成测试已被停用,因为它们需要一些时间才能完成。因此,我想将集成测试的执行与NuGet发布步骤一起转移到发布管道中

我不知道如何在这样的管道中运行这些集成测试。我认为调用
dotnet test
会起作用,但它不起作用:该命令需要一个
.csproj
文件,而不是构建的DLL。在这个阶段,发布管道必须在构建管道提供的工件中工作

正如评论中所建议的,我看到可以使用
dotnet vstest
,但该选项在devops上不可用:

问题


如何在Azure DevOps发布管道中运行集成测试

为了在发布管道中测试test.dll文件,您可以在您的dotnet构建任务之后添加一个发布构建工件任务。然后,您可以使用Visual Studio test任务在发布管道中测试测试DLL。

要运行自定义dotnet命令,可以指定要在选项自定义命令中运行的命令

建议:

但是,还有另一个测试任务(Visual Studio test)可以运行.dll


我认为您需要使用
dotnetvstest
而不是它接受要从中运行测试的DLL列表。如果使用xunit之类的工具,我相信您需要让测试项目引用关联的vstest runner。@Kzrystof有一件事我忘了提到,您可以添加一个发布生成工件**来将生成dll文件发布到发布管道,在那里您可以使用**Visual Studio测试任务运行测试。我更新了我的答案。希望它能有所帮助。@LeviLu MSFT我会尝试一下,并将答案标记为已接受。@Kzrystof很棒。谢谢你能不能把这些破损的图片移走,在它们的位置放上一些解释?无论如何,这确实帮助我让它工作。在构建管道中发布工件,在发布管道中下载工件。请注意,发布构件不允许在其路径中使用通配符。在检查构建输出中的精确路径并将其粘贴到之前,我挣扎了一段时间。这在netcore3.1中不起作用