Winforms 当从编码ui以批处理文件的形式调用MStest时失败
我有一个用于运行mstest的批处理文件。单击批处理文件可以很好地执行该文件。但是,当从win form应用程序调用同一文件时,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
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并将批处理作为文本参数传递给它的方法?使用应用程序启动时,工作目录可能不同,因此批处理文件中的文件引用失败。这是我的猜测,没有看到批处理脚本。