Est-ce que quelqu'un connaît un outil qui crachera une liste de toutes les méthodes avec l'attribut [TestMethod] dans une solution? Ce que nous essayons d'accomplir est une révision, avec le client, de nos tests unitaires (noms, pas le statut de réussite/échec) par rapport aux exigences. Nous utilisons VSTS 2008 et Scrum for Team Systems, donc je ne savais pas si c'était quelque chose qui a été construit quelque part, ou si c'est un outil que j'ai juste besoin de lancer ensemble pour nos besoins. Toute aide est la bienvenue. Merci.Outil de réflexion MSTEST/VSTS
Répondre
VS offre essentiellement cette possibilité gratuitement en générant le fichier TRX pour résumer les résultats d'un test. Il y a plusieurs façons d'exécuter tous les tests dans un projet, mais choisir mstest va exécuter chaque méthode avec l'attribut [TestMethod] et produire un UnitTestResult dans le fichier de résultats.
Ce que vous demandez est essentiellement ce que la fenêtre Résultats de test vous montre après une exécution de test terminée. Si vous cherchez quelque chose d'extérieur à VS, vous pouvez toujours exécuter une simple transformation XSLT sur le fichier Résultats de test (.trx) pour obtenir un résumé personnalisé. Voici un exemple très approximatif qui valide le concept, en générant un document HTML contenant une liste non ordonnée avec un élément de liste (nom du test et résultat) pour chaque test unitaire:
<?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>