2009-03-05 45 views
1

有谁知道一个工具,将在解决方案中用[TestMethod]属性吐出所有方法的列表?MSTEST/VSTS反射工具

我们试图完成的是与客户一起对我们的单元测试(名称,未通过/失败状态)与需求进行评估。我们正在为Team Systems使用VSTS 2008和Scrum,所以我不确定这是否构建在某个地方,或者它是我们需要为了我们的目的而一起折腾的工具。任何帮助都会很棒。谢谢。

回答

1

VS本质上通过生成TRX文件来总结测试运行的结果来免费提供此功能。在项目中运行所有测试有许多不同的方法,但选择一个和一个mstest将使用[TestMethod]属性运行每个方法,并在结果文件中生成一个UnitTestResult。

您所要求的基本上是测试结果窗口在完成测试运行后显示的内容。如果您正在寻找VS外部的东西,则可以始终对测试结果(.trx)文件运行简单的XSLT转换,为您提供自定义摘要。下面是一个非常粗略的示例,它证明了这个概念,生成一个包含无序列表的HTML文档,其中包含每个单元测试的列表项(测试名称和结果):

<?xml version='1.0'?> 
<xsl:stylesheet version="1.0" 
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
      xmlns:vs="http://microsoft.com/schemas/VisualStudio/TeamTest/2006"> 

    <xsl:template match="/"> 
     <html> 
      <head> 
       <style type="text/css"> 

        body { font-family: verdana; font-size: 12px; } 

        .pass { color: green; } 
        .nopass { color: red; } 

        h1 { font-size: 13px; margin: 3px; } 

        ul { margin: 3px 20px 3px 40px; } 
       </style> 
      </head> 
      <body> 

       <h1>Test Results</h1> 
       <ul> 

      <xsl:apply-templates select="//vs:Results//vs:UnitTestResult" /> 

       </ul> 
      </body> 
     </html> 

    </xsl:template> 
    <xsl:template match="vs:UnitTestResult" > 
     <li> 
      <xsl:value-of select="@testName" /> 
      &#160; 

      <xsl:variable name="Result"> 
       <xsl:choose> 
        <xsl:when test="@outcome='Passed'">pass</xsl:when> 
        <xsl:otherwise>nopass</xsl:otherwise> 
       </xsl:choose> 
      </xsl:variable> 

      <b class="{$Result}"> 
       <xsl:value-of select="@outcome" /> 
      </b> 
     </li> 

    </xsl:template> 
</xsl:stylesheet>