Estoy tratando de llamar a MSTEST desde una aplicación de consola dentro de un gancho previo al comercio de SVN, pero ¿recibiendo un error?

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

  •  03-10-2019
  •  | 
  •  

Pregunta

Estoy tratando de llamar a Mstest.exe desde una aplicación de consola simple que se ejecuta desde dentro de un gancho previo al contrato de SVN.

Si uso TortoISSVN para comprometerse, se ejecuta automáticamente el código de la aplicación de la consola a continuación.

(omita después del código para ver qué pasa ...)

// código

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

// PRODUCCIÓN

Esto es lo que veo en la ventana Tortoissvn:

Error: Commit fallado (los detalles siguen):
Error: Conjunto bloqueado por el gancho previo al Commit (código de salida 1) con la salida:
Error: la herramienta de línea de comando de ejecución de Microsoft (R) de prueba 10.0.30319.1
Error: Copyright (c) Microsoft Corporation. Reservados todos los derechos.
Error:
Error: archivo
Error: "c: users myname documents svn test bin debug testProject1.dll"
Error no encontrado .

Entonces puedes ver que estoy llamando a MSTEST correctamente, pero afirma que la ruta está mal.

Pero, si abro un símbolo del sistema VS manualmente y escribo exactamente la misma ruta, el código se ejecuta sin error.

¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Es posible, esto en realidad puede ser un problema de permisos, no un problema de FNF.

Ejecute Filemon mientras ejecuta el código y vea lo que realmente se solicita en el nivel del sistema operativo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top