2008-08-22 14 views
12

Vừa mới bắt đầu sử dụng các tính năng thử nghiệm đơn vị tích hợp của Visual Studio Professional, như tôi đã hiểu, hãy sử dụng MS Test để chạy thử nghiệm.Làm cách nào để định dạng tệp kết quả của Visual Studio Test (.trx) thành định dạng dễ đọc hơn?

Tệp .trx mà các bài kiểm tra tạo ra là xml, nhưng tự hỏi liệu có cách nào dễ dàng chuyển đổi tệp này thành định dạng "thân thiện với người quản lý" hơn không?

mục tiêu cuối cùng của tôi là để có thể tự động hóa các đơn vị thử nghiệm và có thể tạo ra một tài liệu cái nhìn tốt đẹp cho thấy các bài kiểm tra chạy và làm thế nào 100% trong số họ thông qua :)

Trả lời

8

Kể từ tập tin này là XML bạn có thể và nên sử dụng xsl để chuyển đổi nó sang định dạng khác. IAmUnkown - blog có bài viết về decoding/transforming the trx file into html.

Bạn cũng có thể sử dụng .NetSpecExporter from Bekk để tạo báo cáo đẹp. Sản phẩm của họ cũng sử dụng XSL, vì vậy bạn có thể có thể lấy cắp từ tệp đã tải xuống và áp dụng nó với bất kỳ ứng dụng xsl nào bạn muốn.

3

Nếu bạn đang sử dụng VS2008, tôi cũng có câu trả lời trên IAmUnknown. Những cập nhật các câu trả lời ở trên mà là dựa trên VS 2005 định dạng TRX

đây là một style sheet mà tạo ra một file HTM có thể đọc được

<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> 
+1

Bạn có biết một hoạt động trong TFS 2010 mà có thể là như thế này? – alice7

+0

Điều này không liên quan gì đến TFS. Bạn có nghĩa là msbuild? Bạn có thể tạo mục tiêu AfterTest và thêm chức năng trong đó. –

+0

@PreetSangha thực sự, TFS có một thành phần Xây dựng, nơi các mẫu quy trình xây dựng được định nghĩa trong XAML (Mẫu luồng công việc, vì vậy XOML về mặt kỹ thuật) trong đó một 'Hoạt động' có thể được thêm vào. Câu hỏi đặt ra là nếu có 'Hoạt động' trong 'TFS Build' có thể thực hiện điều này. Vì vậy, câu hỏi của alice7 có tất cả mọi thứ để làm với TFS và không có gì để làm với MSBuild. Làm điều này từ MSBuild giả định việc sử dụng MSBuild, trong khi có khả năng, nó không cần thiết và cũng không nhất thiết phải là một phần của một Process Process Template (ví dụ như các process process của CI thực thi đối với các tạo phẩm được tạo bởi các process process templates.) –

3

bạn cũng có thể thử trx2html

+0

Chúng ta có thể sử dụng điều này cho TFS 2010 như một hoạt động? – alice7

+0

@ alice7 Có, bạn có thể sử dụng InvokeProcess trong quy trình làm việc hoặc tạo một hoạt động tùy chỉnh mà tôi thích phương pháp thứ hai vì tôi có toàn quyền kiểm soát những gì tôi muốn làm. – Ekk

2

Nếu bạn cần phải xác nhận lược đồ trước khi phân tích cú pháp/chuyển đổi nó, bạn có thể tìm thấy tệp XSD trong thư mục cài đặt Visual Studio (qua http://blogs.msdn.com/b/dhopton/archive/2008/06/12/helpful-internals-of-trx-and-vsmdi-files.aspx):

Lưu ý rằng các lược đồ XSD sẵn có le với tất cả visual studio cài đặt trong:

% VSINSTALLDIR% \ xml \ Schemas \ vstst.xsd

thư mục tập tin, cùng với nhiều schemas khác.