Я пытаюсь вызвать MSTest из консольного приложения в хуке предварительной фиксации SVN, но получаю ошибку? - PullRequest
0 голосов
/ 16 сентября 2010

Я пытаюсь вызвать MSTest.exe из простого консольного приложения, которое выполняется из ловушки предварительной фиксации SVN.

Если я использую TortoiseSVN для фиксации, он автоматически запускает код консольного приложения, приведенный ниже.

(пропустите код, чтобы увидеть, что происходит ...)

// КОД

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

// ВЫХОД

Вот что я вижу в окне TortoiseSVN:

Ошибка: фиксация не удалась (подробности следуют):
Ошибка: фиксация заблокирована ловушкой предварительной фиксации (код выхода 1) с выводом:
Ошибка: инструмент командной строки для выполнения теста Microsoft (R) 10.0.30319.1
Ошибка: Авторское право (c) Microsoft Corporation. Все права защищены.
Ошибка:
Ошибка: файл
Ошибка: «C: \ Users \ myname \ Documents \ SVN \ Test \ bin \ Debug \ TestProject1.dll»
Ошибка не найдена .

Итак, вы можете видеть, что я правильно вызываю MSTest, но он утверждает, что путь неверен.

НО, если я вручную открою командную строку VS и введу ТОЧНЫЙ путь, код будет выполнен без ошибок.

Что я делаю не так?

1 Ответ

0 голосов
/ 16 сентября 2010

Возможно, это может быть проблема с разрешениями, а не проблема FnF.

Запустите filemon во время выполнения кода и посмотрите, что фактически запрашивается на уровне ОС.

...