Sto cercando di chiamare MSTest da un'app di console all'interno di un gancio pre-commit SVN, ma ricevere un errore?

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

  •  03-10-2019
  •  | 
  •  

Domanda

Sto cercando di chiamare MSTEST.exe da una semplice app di console che viene eseguita dall'interno di un gancio pre-commit SVN.

Se utilizzo TortoisVN per impegnarmi, gestisce automaticamente il codice dell'app console di seguito.

(Salta dopo il codice per vedere cosa succede ...)

// CODICE

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

// PRODUZIONE

Questo è quello che vedo nella finestra Tortoisvn:

Errore: commit non riuscito (seguire i dettagli):
Errore: commit bloccato da un hook pre-commit (Codice di uscita 1) con output:
Errore: Microsoft (R) Strumento riga di comando di esecuzione test versione 10.0.30319.1
Errore: Copyright (C) Microsoft Corporation. Tutti i diritti riservati.
Errore:
Errore: file
Errore: "C: Users MyName Documents Svn Test bin debug testproject1.dll"
Errore non trovato .

Quindi puoi vedere che sto chiamando MSTEST correttamente, ma sostiene che il percorso è sbagliato.

Ma, se apro manualmente un prompt dei comandi VS e digio lo stesso percorso esatto, il codice viene eseguito senza errore.

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

È possibile, questo potrebbe effettivamente essere un problema di autorizzazioni, non un problema FNF.

Esegui Filemon mentre si esegue il codice e vedi cosa viene effettivamente richiesto a livello di sistema operativo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top