使用VStest并行运行测试不起作用

问题描述

我正尝试使用VSTest Task来实现并行测试,如下文所述。 https://docs.microsoft.com/en-us/azure/devops/pipelines/test/parallel-testing-vstest?view=azure-devops

我正在做什么的简短描述:

我在同一服务器上安装了两个自托管代理。 当我使用单个“代理”选项(其中一个)运行测试时,它正在运行,没有任何问题。 但是当我使用多代理选项时 a)根据测试和代理的数量进行简单切片 要么 b)根据测试组件进行切片 我收到以下错误。 ## [错误]类型为“发现”的切片由于错误而被“中止”:System.Exception:从指定的测试源中未发现任何测试。

Error message

预先感谢, 乌代亚·巴斯卡(Udaya Bhaskar)。

解决方法

根据注释中的YAML,这看起来像是任务帮助参考中的磁盘问题路径。

  • PublishBuildArtifacts task的默认路径为$(Build.ArtifactStagingDirectory);您已将其覆盖到$(Build.ArtifactStagingDirectory)\Packages。如果在查看构件时正确设置了此设置,则应该能够下载从该位置上传的测试程序集及其依赖项。
  • DownloadBuildArtifacts task的默认downloadPath$(System.ArtifactsDirectory),YAML视图指示您尚未覆盖。
  • VSTest task的默认searchPath$(System.DefaultWorkingDirectory); YAML视图表明您已将此设置为$(Agent.BuildDirectory)\Bin

此处的确切行为可能取决于您的代理如何为其磁盘路径设置。 $(Agent.BuildDirectory)通常是座席基本工作路径中编号的子目录之一。有趣的是,尽管DownloadBuildArtifacts的文档中说$(System.ArtifactsDirectory)是默认设置,但它并未出现在当前的predefined variables list中;如果它实际上引用了$(Build.ArtifactStagingDirectory),则默认为“ numbered_build_subdirectory \ a”。

由于您的测试搜索路径将扩展到“ numbered_build_subdirectory \ Bin”,因此我希望(假设文件已正确发布)将它们下载到搜索路径之外的位置测试任务是针对性的,这可以解释为什么找不到测试。

我建议将DownloadBuildArtifactsVSTest的下载和搜索路径修改为与基本目录相同,并且相对于基本目录,例如:$(Agent.BuildDirectory)\Tests(或适用于您的管道的任何路径) )。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...