5

我有一个 CodedUiTest,它有几种测试方法。每次我通过 MSTest 从命令行执行测试时,我都希望能够将不同的路径传递给测试。我怎样才能做到这一点?

这就是我现在执行测试的方式:

{
    System.Diagnostics.Process codedUIProcess = new System.Diagnostics.Process();
    System.Diagnostics.ProcessStartInfo codedUIStartInfo = new System.Diagnostics.ProcessStartInfo();

    codedUIStartInfo.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\MSTest.exe";
    codedUIStartInfo.Arguments = @"/testcontainer:C:\DailyBuildAutoTest.dll /test:MyUITestAssembly\MyCodedUITest";
    codedUIStartInfo.CreateNoWindow = true;

    codedUIProcess.StartInfo = codedUIStartInfo;

    codedUIProcess.Start();
}

有没有办法将字符串等参数传递给“MyCodedUITest”?

4

4 回答 4

1

不,不幸的是,没有办法做到这一点。检查MSTest 命令行选项

我能想到的唯一可能的方法是将 与 关联CodedUi Tests并从Microsoft Test ManagerTest Cases运行它们。

然后,您可以通过向测试用例添加参数来轻松参数化测试。这些参数是DataSource相关测试的参数,您可以从 CodedUi Test 中读取它们

于 2013-04-04T13:13:46.507 回答
1

如果要更改测试容器或 mstest.exe 的路径,可以使用 bat 文件,路径是文件的参数,并从进程执行 bat 文件。

 string _myBatchFile = "batFileFullPath;
 string _testContainer = "DllfileFullpath";
 string _testMethodName = "testMethodName";
 string _result = "resulFileName.trx";
 Process _process = new Process();

 _process.StartInfo.Arguments = string.Format("{0} {1} {2}", "\"" + _testContainer + "\"", _result, "\"" + _testMethodName + "\"");
                        _process.StartInfo.FileName = _myBatchFile;
                        _process.Start();
                        _process.WaitForExit();

如果路径之间包含空格,请在路径前后使用引号字符。否则,将它们作为参数发送到 bat 文件将是一个问题。

创建一个如下所示的 bat 文件以由进程调用它。

@ECHO on

"C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\mstest.exe" /testcontainer:%1 /test:%3 /resultsfile:%2
于 2014-06-04T10:56:44.097 回答
1

可以在调用前设置一个环境变量mstest,然后用它的值生成路径字符串吗?

于 2013-04-05T11:11:10.560 回答
0

是的。现在 MSTest 中没有传递参数的选项,但是我在项目中实现了一些解决方法。您需要传递的任何参数都可以保存在文本文件中(或者您可以保存在数据库中)并在执行测试用例时从文本文件中获取参数值。

于 2015-07-24T03:45:11.857 回答