J'essaie d'appeler MSTEST à partir d'une application de console à l'intérieur d'un crochet pré-engagement SVN, mais d'obtenir une erreur?

StackOverflow https://stackoverflow.com/questions/3729151

  •  03-10-2019
  •  | 
  •  

Question

J'essaie d'appeler mstest.exe à partir d'une application de console simple qui est exécutée à l'intérieur d'un crochet pré-engagement SVN.

Si j'utilise TortoiseSVN pour s'engager, il diminue automatiquement le code d'application de la console ci-dessous.

(sautez 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;
}

// PRODUCTION

C'est ce que je vois dans la fenêtre Tortoirevn:

Erreur: la validation a échoué (les détails suivent):
Erreur: engager bloqué par le crochet pré-engagé (code de sortie 1) avec sortie:
ERREUR: Microsoft (R) Test Exécution de la ligne de commande outil de la ligne 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 non trouvée .

Vous pouvez donc voir que j'appelle correctement MSTEST, mais cela prétend que le chemin est faux.

Mais, si j'ouvre manuellement une invite de commande VS et tape exactement le même chemin, le code s'exécute sans erreur.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Il est possible que cela puisse en fait être un problème d'autorisations, pas 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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top