用于WorkItemAttribute?

时间:2011-09-09 19:24:23

标签: visual-studio testing tfs tfs2010

我注意到Visual Studio测试中有一个属性Microsoft.VisualStudio.TestTools.UnitTesting.WorkItemAttribute(我正在使用VS 2010 Premium和TFS 2010的工作项。)

使用工作项编号标记测试方法听起来很方便,但它实际上做了什么吗?我不知道是否有任何工具支持。我这样设置了一个:

[WorkItem(25788)]
[TestMethod]
public void TestSomethingSpecificToABug()
{
    ...

但没有魔法 - 我想也许测试结果窗口中的测试上下文菜单可能提供打开工作项,或者团队资源管理器可能有搜索测试的功能。 MSDN documentation也没有帮助。这个属性有什么用?

6 个答案:

答案 0 :(得分:4)

根据Software Testing with Visual Studio® 2010的“Jeff Levinson”(Addison-Wesley Professional,2011年2月,ISBN-10:0-321-73448-3):

  

这也意味着不再使用一个现有属性:   相关工作项目。此值不会报告给数据   仓库因此不能用于报告。如果你现在   使用此属性,请考虑将测试与实际测试相关联   案例工作项类型。

所以答案是,不要在TFS 2010中使用它。

答案 1 :(得分:3)

WorkItem Test Method属性不用于将测试方法与测试用例相关联。它通常用于将测试方法与错误相关联。 来自Code Index - How to discover ignored tests的相关C#示例:

  

使用MSTest构建单元测试套件时,可以使用   attribute [Ignore]告诉MSTest引擎不要运行测试   评论它。您也可以使用属性[WorkItem(id)]来   将单元测试链接到bug数据库(例如TFS)项,以便您   可以跟踪特定测试被标记为忽​​略的原因:

    [Ignore]
    [WorkItem(12345)] // bug 12345 describes why this test was ignored 
    [TestMethod]
    public void IgnoredButWithWorkItemTest()
    {
        //The actual code is not important;  
    }

答案 2 :(得分:1)

将单元测试链接回TFS中的工作项。我提供了一个更多信息的链接,但它似乎确实记录不足。

我自己没有使用它,但相信它可以用来生成工作项状态的报告。

答案 3 :(得分:1)

这不再需要了:在VS 2013中通过CodeLens

查找关联的工作项(Alt + 7)

enter image description here

查找链接代码评论(Alt + 8)

enter image description here

查找链接的错误(Alt + 9)

enter image description here

要查看测试的定义,请双击测试。

enter image description here

哦!对于那些珍惜Lync的人:

与商品所有者联系(Shift + F10)

enter image description here

答案 4 :(得分:0)

我确实记得,之前我使用过此属性,测试结果已附加到相应的WorkItem。

但是,使用Visual Studio 2012,它不再起作用了,或者我忘记了哪种机制实际上对魔术负责。难道这只能通过构建服务器运行吗?

答案 5 :(得分:0)

当您拥有为运行Selenium UI单元测试而构建的本地测试工具时,从测试二进制文件中提取属性非常有用。

测试失败后,我可以使用System.Reflection.MemberInfo.CustomAttributes提取WorkItemAttribute值,然后使用TFS API查找ID。如果工作项是一个bug并且它仍处于活动状态,我可以自动解决该bug的失败。通过这种方式,我可以每天运行失败的测试并自动解决失败以减少随机化。