You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure DevOps Pipeline:同解决方案下.NET项目测试路径配置问题

解决Azure DevOps Pipeline中无法找到NUnit测试项目的问题

核心问题是你的YAML文件位于MyProject根目录,而测试项目MyProject.Tests和MyProject属于同级目录(同属一个解决方案),默认路径下测试任务无法定位到上级目录的测试项目文件。以下是两种可行的修改方案:

方案1:直接指定测试项目的相对路径

利用相对路径从MyProject目录导航到同级的MyProject.Tests项目,修改后的YAML示例如下:

trigger:
- main  # 根据你的实际分支名调整

pool:
  vmImage: 'windows-latest'  # 按需选择符合项目需求的镜像

steps:
# 步骤1:构建主项目MyProject
- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '**/MyProject.csproj'  # YAML在MyProject目录下,该路径可匹配到主项目文件
    arguments: '--configuration Release'  # 按需配置构建环境

# 步骤2:运行NUnit测试,指定测试项目的相对路径
- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '../MyProject.Tests/MyProject.Tests.csproj'  # 关键:用../回到上级目录定位测试项目
    arguments: '--configuration Release --no-build'  # --no-build避免重复构建,提升流水线效率
    testRunTitle: 'MyProject NUnit Tests'

方案2:通过解决方案文件统一构建和测试(推荐)

既然两个项目同属一个解决方案,直接基于解决方案文件操作会更简洁,无需单独指定每个项目路径:

trigger:
- main

pool:
  vmImage: 'windows-latest'

steps:
# 步骤1:构建整个解决方案
- task: DotNetCoreCLI@2
  inputs:
    command: 'build'
    projects: '../MySolution.sln'  # 替换为你的实际解决方案文件名,路径回到上级目录
    arguments: '--configuration Release'

# 步骤2:运行解决方案中的所有测试项目
- task: DotNetCoreCLI@2
  inputs:
    command: 'test'
    projects: '../MySolution.sln'
    arguments: '--configuration Release --no-build'
    testRunTitle: 'MyProject NUnit Tests'

额外注意事项

  • 确保MyProject.Tests.csproj中已正确安装必要的NuGet包:NUnit、NUnit3TestAdapter和Microsoft.NET.Test.Sdk,缺少这些包会导致测试无法正常执行。
  • 如果你的目录结构和上述示例不同,需调整相对路径以匹配实际的项目位置。

内容的提问来源于stack exchange,提问作者StanSm789

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:57:17