MSTEST / VSTS Reflectionツール
-
03-07-2019 - |
質問
ソリューション内の[TestMethod]属性を持つすべてのメソッドのリストを吐き出すツールを知っている人はいますか?
私たちが成し遂げようとしているのは、顧客とのユニットテスト(要件の合格/不合格ではなく名前)のレビューです。チームシステムにVSTS 2008とScrumを使用しているので、これがどこかに構築されたものなのか、それとも目的のために一緒に投げるだけのツールなのかはわかりませんでした。どんな助けも素晴らしいでしょう。ありがとう。
解決
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" />
 
<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>
所属していません StackOverflow