如何将Visual Studio测试结果文件(.trx)格式化为更易读的格式?

时间:2008-08-22 20:48:04

标签: visual-studio-2008 unit-testing

刚开始使用Visual Studio Professional的内置单元测试功能,据我所知,它使用MS Test来运行测试。

测试生成的.trx文件是xml,但是想知道是否有一种简单的方法可以将此文件转换为更“管理员友好”的格式?

我的最终目标是能够自动化单元测试,并能够生成一个漂亮的文档,显示测试运行以及100%的测试如何通过:)

5 个答案:

答案 0 :(得分:8)

由于此文件是XML,您可以并且应该使用xsl将其转换为其他格式。 IAmUnkown - 博客有一个关于decoding/transforming the trx file into html的条目。

您还可以使用.NetSpecExporter from Bekk创建精美的报告。他们的产品也使用XSL,因此您可能会从下载的文件中窃取并将其应用于您想要的任何xsl-application。

答案 1 :(得分:3)

如果您使用的是VS2008,我也会在IAmUnknown上找到答案。其中更新了基于VS 2005 trx格式的上述答案

这是一个创建可读HTM文件的样式表

<xsl:stylesheet version="2.0"  
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:t="http://microsoft.com/schemas/VisualStudio/TeamTest/2006"
                >

<xsl:template match="/">
  <html>
  <head>
        <style type="text/css">
            h2 {color: sienna}
            p {margin-left: 20px}
            .resultsHdrRow { font-face: arial; padding: 5px }
            .resultsRow { font-face: arial; padding: 5px }
            </style>
    </head>
  <body>
    <h2>Test Results</h2>
    <h3>Summary</h3>
        <ul>
            <li>Tests found:    <xsl:value-of select="t:TestRun/t:ResultSummary/t:Counters/@total"/></li>
            <li>Tests executed: <xsl:value-of select="t:TestRun/t:ResultSummary/t:Counters/@executed"/></li>
            <li>Tests passed:   <xsl:value-of select="t:TestRun/t:ResultSummary/t:Counters/@passed"/></li>
            <li>Tests Failed:   <xsl:value-of select="t:TestRun/t:ResultSummary/t:Counters/@failed"/></li>

        </ul>
    <table border="1" width="80%" >
        <tr  class="resultsHdrRow">
          <th align="left">Test</th>
          <th align="left">Outcome</th>
        </tr>
        <xsl:for-each select="/t:TestRun/t:Results/t:UnitTestResult" >
        <tr valign="top" class="resultsRow">
            <td width='30%'><xsl:value-of select="@testName"/></td>
            <td width='70%'>
              <Div>Message: <xsl:value-of select="t:Output/t:ErrorInfo/t:Message"/></Div>
              <br/>
              <Div>Stack: <xsl:value-of select="t:Output/t:ErrorInfo/t:StackTrace"/></Div>
               <br/>
              <Div>Console: <xsl:value-of select="t:Output/t:StdOut"/></Div>
            </td>
        </tr>
        </xsl:for-each>
    </table>
  </body>
  </html>
</xsl:template>

</xsl:stylesheet>

答案 2 :(得分:3)

您也可以尝试trx2html

答案 3 :(得分:2)

如果需要在解析/转换架构之前验证架构,可以在Visual Studio安装目录中找到XSD文件(通过http://blogs.msdn.com/b/dhopton/archive/2008/06/12/helpful-internals-of-trx-and-vsmdi-files.aspx):

  

请注意,XSD架构适用于所有visual studio   安装在:

     

%VSINSTALLDIR%\ xml \ Schemas \ vstst.xsd

     

文件目录,以及许多   其他架构。

答案 4 :(得分:0)

最近我写了一个trx到基于python的html转换器,看看 https://github.com/avinash8526/Murgi