2010-04-09 5 views
4

J'ai un ensemble de tests unitaires, chacun avec un tas de méthodes, chacune produisant des résultats dans le dossier TestResults. À l'heure actuelle, tous les fichiers de test sont mélangés dans ce dossier, mais j'aimerais apporter un peu d'ordre au chaos.Comment donner à chaque test son propre dossier TestResults?

Idéalement, j'aimerais avoir un dossier pour chaque méthode de test. Je sais que je peux ajouter du code à chaque test pour le faire produire dans un sous-dossier, mais je me demandais s'il y avait un moyen de contrôler l'emplacement du dossier de sortie avec le framework de test unitaire Visual Studio, en utilisant peut-être une méthode d'initialisation sur chaque classe de test afin que tous les nouveaux tests ajoutés obtiennent automatiquement leur propre dossier de sortie sans avoir besoin de copier/coller le code standard?

Répondre

0

Je fini par faire ceci:

private string TestDir; 

    [TestInitialize] 
    public void InitilizeTests() 
    { 
     TestDir = TestContext.TestDir + @"\Out\" + 
       this.GetType().Name + @"." + TestContext.TestName + @"\"; 

     Directory.CreateDirectory(TestDir); 
    } 

Cela crée une structure de répertoires comme ceci:

TestResults 
    <test run> 
     Out 
      <test class name>.<test method name> 

Et je N'oubliez pas de diriger toutes les sorties d'un test unitaire vers TestDir

0

Vous m'avez deviné un peu: cela dépend de ce que vous voulez faire avec la sortie? Si la sortie est TestResult.xml analysée par CruiseControl, pourquoi voudriez-vous en avoir plusieurs?

[Modifier]

Vous pourriez être en mesure de garder une trace des dossiers en ayant des groupes de vos tests dans une classe et la configuration du outputfolder dans le [TestFixtureSetup]?

[Modifier]

Vous devez utiliser un TestFrameWork comme NUnit, je suppose que vous êtes au courant.

que pour un testclass spécifique que vous pouvez faire:

[TestFixture] 
public class MyOutPutTests 
{ 

    private string folder; 

    [SetUp] 
    public void InitializeFolder() 
    { 
     this.folder = @"d:\MyFirstOutputTests"; 
    } 

    [Test] 
    public void OutImages() 
    { 
     ... write to this.folder 
    } 

    [Test] 
    public void OutputLogs() 
    { 
     .. write logs to this.folder 
    } 
+0

Chaque test produit un ou plusieurs journaux, images et fichiers de sortie, que je souhaite inspecter visuellement. – izb

+0

On dirait que TestFixtureSetup est prometteur .. pourriez-vous donner un exemple? – izb

Questions connexes