2009-03-05 4 views
1

솔루션 내에서 [TestMethod] 특성을 가진 모든 메서드 목록을 뱉어 낼 도구를 아는 사람이 있습니까?MSTEST/VSTS Reflection Tool

우리가 달성하고자하는 것은 요구 사항에 대한 고객의 단위 테스트 (이름, 통과/실패 상태가 아님)를 검토하는 것입니다. 우리는 VSTS 2008과 Team System 용 스크럼을 사용하고 있습니다. 그래서 이것이 어딘가에 만들어 졌는지, 아니면 우리의 목적을 위해 함께 던져야 할 도구인지 확실하지 않았습니다. 어떤 도움이라도 좋을 것입니다. 감사.

답변

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>