2010-09-16 28 views
0

J'essaie d'appeler MSTest.exe à partir d'une simple application de console qui est exécutée depuis un hook de pré-validation SVN. Si j'utilise TortoiseSVN pour valider, il exécute automatiquement le code de l'application console ci-dessous.J'essaie d'appeler MSTest à partir d'une application de console à l'intérieur d'un hook de pré-validation SVN, mais vous obtenez une erreur?

(sauter après le code pour voir ce qui se passe ...)

// CODE

static void Main(string[] args) 
{ 
    string testPath = @"C:\Users\myname\Documents\SVN\Test\bin\Debug\TestProject1.dll"; 

    string mstest = GetMSTestOutput(testPath); 

    if (mstest != null) 
    { 
     Console.Error.WriteLine(mstest); 
     Environment.Exit(1); // I WANT it to stop here, so I can see output while testing 
    } 
} 

private static string GetMSTestOutput(string testPath) 
{ 
ProcessStartInfo processStartInfo = new ProcessStartInfo 
{ 
    FileName = @"C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe", 
    UseShellExecute = false, 
    CreateNoWindow = true, 
    RedirectStandardOutput = true, 
    RedirectStandardError = true, 
    Arguments = String.Format("/testcontainer:{0}", testPath) 
}; 

Process process = Process.Start(processStartInfo); 
string output = process.StandardOutput.ReadToEnd(); 
process.WaitForExit(); 
return output; 
} 

// SORTIE

Voici ce que je vois dans la fenêtre TortoiseSVN:

Erreur: La validation a échoué (les détails suivent):
Erreur: validation bloquée par le crochet de pré-validation (code de sortie 1) avec la sortie:
Erreur: outil de ligne de commande d'exécution de test Microsoft (R) version 10.0.30319.1
Erreur: Copyright (c) Microsoft Corporation. Tous les droits sont réservés.
Erreur:
Erreur: Fichier
Erreur: "C: \ Users \ myname \ Documents \ SVN \ Test \ bin \ Debug \ TestProject1.dll"
Erreur: introuvable.

Ainsi, vous pouvez voir que j'appelle MSTest correctement, mais il prétend que le chemin est incorrect. MAIS, si j'ouvre une invite de commande VS manuellement et que je tape le même chemin EXACT, le code s'exécute sans erreur.

Qu'est-ce que je fais mal?

Répondre

0

Il est possible qu'il s'agisse d'un problème d'autorisations et non d'un problème FnF.

Exécutez Filemon pendant que vous exécutez le code et voyez ce qui est réellement demandé au niveau du système d'exploitation.

+0

J'ai exécuté ProcessMonitor (filemon n'est plus disponible), je l'ai limité à l'activité du système de fichiers et filtré au nom de processus "ControllerConsole.exe" (le nom de mon application de console qui essaie d'appeler mstest) et j'ai toujours 786 lignes et je n'ai aucune idée de ce que je cherche. – Blackcoil

+0

Il s'est avéré être un problème d'autorisations. Corrigé, et maintenant sur un autre problème d'autorisations. *gémissement* – Blackcoil