VS, по сути, предлагает эту возможность бесплатно, генерируя файл TRX для подведения итогов результатов тестового прогона. Существует несколько различных способов запустить все тесты в проекте, но выберите один и выключите mstest, чтобы запустить каждый метод с атрибутом [TestMethod] и создать UnitTestResult в файле результатов.
То, что вы запрашиваете, - это, по сути, окно результатов теста, отображаемое после завершенного прогона теста. Если вы ищете что-то внешнее по отношению к VS, вы всегда можете запустить простое XSLT-преобразование для файла результатов теста (.trx), предоставляя вам индивидуальную сводку. Вот очень грубый пример, который подтверждает концепцию, генерируя 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>