Winforms 当从编码ui以批处理文件的形式调用MStest时失败

Winforms 当从编码ui以批处理文件的形式调用MStest时失败,winforms,batch-file,mstest,coded-ui-tests,Winforms,Batch File,Mstest,Coded Ui Tests,我有一个用于运行mstest的批处理文件。单击批处理文件可以很好地执行该文件。但是,当从win form应用程序调用同一文件时,mstest失败。这种行为似乎很奇怪。有人能提供任何原因吗。 我使用了以下代码来调用它: Process myProcess = new Process(); ProcessStartInfo myProcessStartInfo = new ProcessStartInfo(@"D:\CodedUI\CommonAut

我有一个用于运行mstest的批处理文件。单击批处理文件可以很好地执行该文件。但是,当从win form应用程序调用同一文件时,mstest失败。这种行为似乎很奇怪。有人能提供任何原因吗。 我使用了以下代码来调用它:

            Process myProcess = new Process();
            ProcessStartInfo myProcessStartInfo = new  ProcessStartInfo(@"D:\CodedUI\CommonAutomationFramework\Driver_batch.bat");
            myProcessStartInfo.UseShellExecute = false;
            myProcess.StartInfo = myProcessStartInfo;
            myProcess.Start();

失败到底是什么?测试或MSTest本身

无论如何,批处理文件在命令行解释器(cmd)上执行命令

在您启动的过程中,可能应该改为启动“cmd.exe”。读取批处理文件的内容并将其传递给“cmd.exe”

像这样:

ProcessStartInfo processInfo;
Process process;

processInfo = new ProcessStartInfo("cmd.exe", "/c " + command);
(...)
此处的“命令”是批处理文件中的文本

您也可以尝试以下方法:

System.Diagnostics.Process.Start(@"D:\CodedUI\CommonAutomationFramework\Driver_batch.bat");

mstest进程开始,但测试立即失败。我在mstest控制台中看到的结果是失败的不要在回答中问任何问题!这可能是因为编码的ui测试和调用批处理文件的winform应用程序位于同一个解决方案中吗?我认为这没有多大意义。如果手动执行批处理文件,则批处理文件是否有效。您是否尝试过启动cmd.exe并将批处理作为文本参数传递给它的方法?使用应用程序启动时,工作目录可能不同,因此批处理文件中的文件引用失败。这是我的猜测,没有看到批处理脚本。