zoukankan      html  css  js  c++  java
  • VSTS 通过生成中未通过的测试自动创建 Bug 工作项

    文章介绍

    在项目中我们往往需要系统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

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



  • 相关阅读:
    【leetcode】剑指 Offer 07. 重建二叉树
    【leetcode】剑指 Offer 59
    【leetcode】717. 1比特与2比特字符
    【leetcode】67. 二进制求和
    【leetcode】258. 各位相加
    文件管理(高级)
    文件管理(基础)
    python之模块与类库
    python之对象与类
    python之迭代器
  • 原文地址:https://www.cnblogs.com/WilsonWu/p/1324346.html
Copyright © 2011-2022 走看看