VSTS 通过生成中未通过的测试自动创建 Bug 工作项

简介: 文章介绍 在项目中我们往往需要系统Bug很容易被发现, 并且希望其自动通知开发人员, 现在使用TFS 2008 就可以很轻松的实现自动将测试未通过的生成, 创建成一个工作项. 实现步骤 1. 建立新生成 步骤1:打开团队项目并创建生成 建立一个”生成”, 在团队项目浏览器中找到”生成...

文章介绍

在项目中我们往往需要系统Bug很容易被发现, 并且希望其自动通知开发人员, 现在使用TFS 2008 就可以很轻松的实现自动将测试未通过的生成, 创建成一个工作项.

实现步骤

1. 建立新生成

步骤1:打开团队项目并创建生成

建立一个生成”, 在团队项目浏览器中找到生成”目录, 并右击选择新建生成定义”:

clip_image004

在弹出窗口中我们定义以下生成的具体信息:

clip_image006

常规中我们必须填写生成名称, 描述可以选填;

然后再工作区中默认选择即可;

项目文件步骤我们需要创建一个生成项目文件:

clip_image008

点击创建”按钮, 并在第一步中选择我们要生成的解决方案:

clip_image010

然后再配置步骤可以选择不同的生成方式:

clip_image012

我们选择部署方式用, 最后在选项里面我们需要为该生成只定项目中已有的测试:

clip_image014

我们选择后两个测试步骤.

完成之后再回来继续设置保存策略”:

clip_image016

这里我们默认选择全部保存所有结果, 然后我们选择现有的一个生成代理:

clip_image018

接下来选择一个生成存放的路径:

clip_image020

该路径是一个共享目录, 放置在服务器上, 建立该共享目录的步骤如下, 以下步骤需要在服务器进行.

首先建立一个目录:
clip_image022

右击选择属性”:

clip_image024

共享”选项卡中设置为如下:

clip_image026

然后点击权限”按钮, 再点击添加”按钮, 将”TFSSERVICE””BuildService”两个账户加入:

clip_image028

然后为这两个账户设置完全控制权限:

clip_image030

接着选择安全”选项卡:

clip_image032

选择添加”按钮, 将上面的两个账户也加入到其中:

clip_image034

设置其权限为完全控制”:

clip_image036

这样我们选择这个目录然后可以自定义生成在其子目录下.

最后出发条件我们选择默认, 也就是只能手动出发, 稍后测试成功后再将其改为生成每个签入”状态:

clip_image038

2. 配置测试失败自动创建Bug工作项

然后我们到源代码管理里面找到刚才建立的生成项目文件:

clip_image040

打开”TFSBuild.proj”文件, 首先找到”WorkItemType”标签:

clip_image042

将其值设置为目前团队项目中有的工作项类型, 系统默认的类型是错误”, 这个必须被修改才能正常使用, 这里如上图, 我们将其改为”Bug”.

然后在下面找到”WorkItemFieldValues”标签, 该标签内设置了工作项字段的赋值:

clip_image044

这里我们可以加入我们需要的字段到其中, 如果默认的话需要将第一个”System.Reason”的值修改为生成错误”才能正常使用, 其格式为”[RefName]=[Value];”.

然后将下面代码加入到该文件的Project节点中:

< UsingTask  TaskName ="Microsoft.TeamFounadtion.Build.Tasks.CreateNewWorkItem"  AssemblyFile ="$(TeamBuildRefPath)\Microsoft.TeamFoundation.Build.Tasks.VersionControl.dll"   />  

< Target  Name ="AfterTest" >  

<!--  Refresh the build properties.  -->  

< GetBuildProperties  TeamFoundationServerUrl ="$(TeamFoundationServerUrl)"  

BuildUri
="$(BuildUri)"  

Condition
=" '$(IsDesktopBuild)' != 'true' " >  

< Output  TaskParameter ="TestSuccess"  PropertyName ="TestSuccess"   />  

</ GetBuildProperties >  

<!--  Set CompilationStatus to Failed if TestSuccess is false.  -->  

< SetBuildProperties  TeamFoundationServerUrl ="$(TeamFoundationServerUrl)"  

BuildUri
="$(BuildUri)"  

CompilationStatus
="Failed"  

Condition
=" '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' " >  

</ SetBuildProperties >  

< CreateNewWorkItem 

BuildNumber ="$(BuildNumber)"  

BuildURi
="$(BuildURI)"  

Description
="The CreateNewWorkItem task created this bug."  

TeamProject
="$(TeamProject)"  

TeamFoundationServerUrl
="$(TeamFoundationServerUrl)"  

Title
="Unit Test Failure in $(BuildNumber)"  

WorkItemFieldValues
="$(WorkItemFieldValues)"  

WorkItemType
="$(WorkItemType)"  

Condition
=" '$(IsDesktopBuild)' != 'true' and '$(TestSuccess)' != 'true' " >  

</ CreateNewWorkItem >  

</ Target >  

</ Project >

 编辑完成后保存并将该文件签入到源代码管理器中

场景结果体现

1. 测试失败后建立工作项建立

首先如果我们未加入上述代码到生成文件中, 如果在生成过程中遇到失败的测试, 则产生的结果如下:

clip_image046

这个测试并不认为完全失败, 也不会生成工作项.

加入上述代码后该生成出现在生成列表中, 右击选择”使新生成入队”:

clip_image048

会产生如下结果:

clip_image050

可以看到同样是测试失败, 但是产生的结果并不相同, 然后我们选择团队查询中的活动Bug”查询:

clip_image052

可以看到自动创建的Bug已经存在了, 我们打开该工作项:

clip_image054

这样就可以为测试未通过的情况自动创建工作项.

目录
相关文章
|
6月前
|
测试技术
测试提交的bug开发不认可怎么办?
测试提交的bug开发不认可怎么办?
179 0
|
6月前
|
程序员
面试高频题:开发人员说不是bug,测试如何答复?
面试高频题:开发人员说不是bug,测试如何答复?
116 0
|
前端开发 安全 程序员
测试大姐趁我下班点又提了个bug!前端你咋多个options请求?
测试大姐趁我下班点又提了个bug!前端你咋多个options请求?
88 0
|
2月前
|
SQL 安全 测试技术
『软件测试6』bug一两是小事,但安全漏洞是大事!
该文章强调了在软件测试中识别与处理安全漏洞的重要性,并详细介绍了常见的安全测试类型、测试流程及使用的主要工具,帮助测试人员有效地检测和防止安全问题。
『软件测试6』bug一两是小事,但安全漏洞是大事!
|
5月前
|
编解码 测试技术 数据库连接
【软件测试】 软件测试生命周期与Bug
【软件测试】 软件测试生命周期与Bug
|
6月前
|
消息中间件 前端开发 关系型数据库
🤔️测试问我:为啥阅读量计数这么简单的功能你都能写出bug?
🤔️测试问我:为啥阅读量计数这么简单的功能你都能写出bug?
|
6月前
|
程序员 测试技术
程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。
【5月更文挑战第11天】程序员难以一次性写好代码并持续修复Bug,主要源于软件的高复杂性、需求不确定性、测试局限性和技术能力限制。复杂的系统易产生意外问题,需求变化导致初始设计难完备,测试无法覆盖所有情况,而技术更新和个体能力差异也会引入错误。因此,持续调试和优化是保证软件质量的关键步骤。
66 0
|
11月前
|
人工智能 测试技术 程序员
软件测试/人工智能|使用ChatGPT帮我们查找bug
软件测试/人工智能|使用ChatGPT帮我们查找bug
|
11月前
|
人工智能 测试技术 开发者
软件测试/人工智能|如何利用人工智能来帮助我们找bug
软件测试/人工智能|如何利用人工智能来帮助我们找bug
软件测试/人工智能|如何利用人工智能来帮助我们找bug
|
6月前
|
SQL 前端开发 测试技术
软件测试/测试开发|如何定位bug,一篇文章告诉你
软件测试/测试开发|如何定位bug,一篇文章告诉你