أحاول الاتصال بـ MSTEST من تطبيق وحدة تحكم داخل خطاف SVN قبل الالتزام ، ولكن الحصول على خطأ؟

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

  •  03-10-2019
  •  | 
  •  

سؤال

أحاول الاتصال بـ 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) Test Execution Command Line Tool الإصدار 10.0.30319.1
خطأ: حقوق الطبع والنشر (C) Microsoft Corporation. كل الحقوق محفوظة.
خطأ:
خطأ: ملف
خطأ: "C: Users myName Documents Svn Test bin debug testProject1.dll"
خطأ: لم يتم العثور عليه.

لذلك يمكنك أن ترى أنني أتصل بـ MSTEST بشكل صحيح ، لكنها تدعي أن المسار خاطئ.

ولكن ، إذا قمت بفتح موجه VS Order يدويًا واكتب نفس المسار بالضبط ، يتم تشغيل الكود دون خطأ.

ما الخطأ الذي افعله؟

هل كانت مفيدة؟

المحلول

من الممكن ، أن هذه في الواقع مشكلة أذونات ، وليس مشكلة FNF.

قم بتشغيل Filemon أثناء تنفيذ الرمز ، ومعرفة ما يتم طلبه بالفعل على مستوى نظام التشغيل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top