Как отформатировать файл результатов теста Visual Studio (.trx) в более читаемый формат?
Только что начали использовать встроенные функции модульного тестирования Visual Studio Professional, которые, как я понимаю, используют MS Test для запуска тестов.
Файл.trx, создаваемый тестами, представляет собой xml, но было интересно, есть ли простой способ преобразовать этот файл в более "удобный для менеджера" формат?
Моя конечная цель - уметь автоматизировать юнит-тестирование и подготовить красивый документ, показывающий, как проходят тесты, и как они прошли 100%:)
5 ответов
Поскольку этот файл является XML, вы можете и должны использовать xsl для преобразования его в другой формат. В блоге IAmUnkown есть запись о декодировании / преобразовании файла trx в html.
Вы также можете использовать .NetSpecExporter от Bekk для создания хороших отчетов. Их продукт также использует XSL, так что вы можете украсть его из загруженного файла и применить его с любым xsl-приложением, которое захотите.
Если вы используете 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>
Если вам нужно проверить схему перед ее анализом / преобразованием, вы можете найти XSD-файл в установочном каталоге Visual Studio (через 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
каталог файлов вместе со многими другими схемами.
Недавно я написал один конвертер trx в html, который основан на python, посмотрите https://github.com/avinash8526/Murgi