Azure DevOps Test Plans 对接 DotNet Core NUnit单元测试

本文详细介绍了如何在AzureDevOps中使用DotNet进行项目管理,包括创建项目、设置源代码管理、配置单元测试计划、关联测试用例,并解决VSTest找不到测试任务的问题,确保测试任务正确执行并获得通过。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

背景介绍

我有一个场景,需要使用DotNet代码,和Azure DevOps的Test Plans做单元测试
但是网上各种知识碎片 零零散散,不胜其烦。故作整合,与君共勉。

本篇图文纯手打,点赞收藏发大财!!!

操作步骤

新建项目
在这里插入图片描述
输入你要创建的项目的名字

在这里插入图片描述
选择源代码管理,可以选择使用Git,但这里为了方便,我们先试用微软的Repos源代码管理
在这里插入图片描述
把这个项目的Https url copy使用Git工具拉下来
在这里插入图片描述
拉下来之后会有一个只有.git的空文件夹
在这里插入图片描述
使用VS2022创建一个NUnit单元项目
在这里插入图片描述
填写名称和位置
在这里插入图片描述
得到一个项目
在这里插入图片描述
我们先把这个初始项目提交到Repos
在这里插入图片描述
这个时候Repos就会出现你的项目代码
在这里插入图片描述
我们建一个Boards
在这里插入图片描述
建一个开发任务
在这里插入图片描述
点击Add Test
在这里插入图片描述
再建一个测试任务
在这里插入图片描述
选中测试任务点击edit,进入编辑页面,记住这个ID
在这里插入图片描述
回到VS界面
输入Ctrl+E,T键唤出测试资源管理器,有也可以直接在导航》视图 中唤出 测试资源管理器
在这里插入图片描述
在测试资源管理器中找到你要关联的方法,右键关联到测试用例
在这里插入图片描述
输入 刚才的ID 53
在这里插入图片描述
搜索后会看到我们刚才建的测试任务,然后点击保存建立关联
在这里插入图片描述
保存会出现一个成功的标识
在这里插入图片描述
这个时候在Azure的测试任务上就会看到关联的方法名称
在这里插入图片描述
这个时候我们开始创建一个Azure Pipelines管道
在这里插入图片描述
选择源代码管理,这里我们使用刚才的Repos
在这里插入图片描述
选中项目
在这里插入图片描述
选择框架
在这里插入图片描述
这里我们清空原有yaml
贴一个新的脚本

trigger:
- main

pool:
  name: Default


variables:
  buildConfiguration: 'Release'  


steps:
- task: UseDotNet@2
  displayName: 'Use .NET SDK 6.x'
  inputs:
    packageType: sdk
    version: '6.x'


# 还原
- task: DotNetCoreCLI@2
  displayName: 'Restore project dependencies'
  inputs:
    command: 'restore'
    projects: '**/*.csproj'
    feedsToUse: 'select'
    noCache: true

- task: DotNetCoreCLI@2
  displayName: 'Build the project - $(buildConfiguration)'
  inputs:
    command: 'build'
    arguments: '--no-restore --configuration $(buildConfiguration)'
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  displayName: 'Run unit tests - $(buildConfiguration)'
  inputs:
    command: 'test'
    arguments: '--no-build --configuration $(buildConfiguration)'
    publishTestResults: true
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  displayName: 'Publish the project - $(buildConfiguration)'
  inputs:
    command: 'publish'
    publishWebProjects: false
    projects: '**/*.csproj'
    arguments: '--no-build --configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)/$(buildConfiguration)'

- task: VisualStudioTestPlatformInstaller@1
  inputs:
    packageFeedSelector: 'nugetOrg'
    versionSelector: 'latestStable'


- task: VSTest@3
  inputs:
    testSelector: 'testPlan'
    testPlan: '54'
    testSuite: '55'
    testConfiguration: '6'
    searchFolder: '$(System.DefaultWorkingDirectory)'
    vsTestVersion: 'toolsInstaller'

- task: PublishBuildArtifacts@1
  displayName: 'Publish Artifact: drop'
  condition: succeeded()

保存并运行
在这里插入图片描述
直接运行
在这里插入图片描述
因为我使用了Windows代理,所以要对代理机器授权,选中Permission needed,点击Permit
配置Windows代理的步骤,有时间我会整理到另外一篇文章
在这里插入图片描述

授权成功后,我们会看到Job正在运行,我们选中job看下执行详情
在这里插入图片描述
左侧是执行目录,右侧是执行的每条任务的详情

在这里插入图片描述
这个时候我们发现,VSTest报错了,错误信息是 找不到测试任务

##[error]Microsoft.TeamFoundation.DistributedTask.Task.TestExecution.NoTestPointsException: No automated test cases were found matching the specified test plan, test suites, test configuration. Ensure that right values were specified and try again.

在这里插入图片描述
这个时候我们打开Test Plans,会看到一个Sprint1
在这里插入图片描述
双击进入编辑页面,我们会看到在Boards中建的测试任务,记住开发任务后面的ID
在这里插入图片描述
把这个数字填写到Azure Pipelines的YAML中,测试我们看到下拉框中是没有二级菜单中的56ID的开发任务的,只有父级,但是父级又不包含子集的Execute,这里我们手动改VSTest@3的配置,将inputs>testSuite 手动改成刚才的ID 56
在这里插入图片描述
点击保存,然后运行
在这里插入图片描述
这个时候我们看大到,管道里的测试执行过了
在这里插入图片描述
我们回到Test Plans中看,返现测试任务的状态变成了【Passed】
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值