<span style="white-space:pre"> </span>基于NET FrameWork IDE Mstest命令实现。
<span style="white-space:pre"> </span>测试DLL文件必须为测试用例类,要有[testclass][testmethod]等标识。
<span style="white-space:pre"> </span>/// <summary>
/// 执行单元测试用例
/// </summary>
/// <param name="untilTestDllFile">单元测试用例DLL文件路径</param>
/// <param name="complierReturnMsg"></param>
/// <returns></returns>
public bool ExcUnitTest(string untilTestDllFile, out string complierReturnMsg)
{
string DriverFilePath = ConfigurationManager.AppSettings["DriverFilePath"];
Process testp = new Process();
bool isSuccess = true;
complierReturnMsg = "";
string filename = @"C:\Windows\System32\cmd.exe";
testp.StartInfo.FileName = filename;
testp.StartInfo.UseShellExecute = false;
testp.StartInfo.RedirectStandardOutput = true;
testp.StartInfo.RedirectStandardInput = true;
testp.StartInfo.CreateNoWindow = true;
testp.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
try
{
testp.Start();
testp.StandardInput.WriteLine(DriverFilePath);
testp.StandardInput.WriteLine(@"cd " + ConfigurationManager.AppSettings["mstestFilePath"]);
testp.StandardInput.WriteLine(@"mstest /noisolation /testcontainer:" + untilTestDllFile + " /resultsfile:" + ConfigurationManager.AppSettings["resultsFilePath"] + "TestResults_" + DateTime.Now.Ticks.ToString() + ".trx");
testp.StandardInput.WriteLine("exit");
while (!testp.StandardOutput.EndOfStream)
{
string line = testp.StandardOutput.ReadLine();
if (line.Contains("未通过") || line.Contains("Inconclusive"))
{
isSuccess = false;
}
complierReturnMsg += line + "\r\n";
}
testp.StandardInput.Close();
testp.WaitForExit();
}
catch (Exception ex)
{
com.log.Loger.Debug("ExcUnitTest", ex);
}
finally
{
testp.Close();
}
return isSuccess;
}
有任何疑问加技术-Qun 594271193 一起交流