2009-03-05 71 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>