【问题标题】:Passing parameters to a Coded UI Test which is run from command line with MSTest.exe将参数传递给使用 MSTest.exe 从命令行运行的编码 UI 测试
【发布时间】:2013-04-04 12:34:31
【问题描述】:

我有一个 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”?

【问题讨论】:

    标签: c# visual-studio-2012 mstest coded-ui-tests


    【解决方案1】:

    不,遗憾的是没有办法做到这一点。检查MSTest Command-Line Options

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

    然后您可以通过adding parameters to test cases 轻松参数化测试。这些参数是关联测试的DataSource,你可以read them from your CodedUi Test

    【讨论】:

    • 嗯,不幸的是,手动执行测试不是一种选择。
    • 它们不是手动执行的。您可以创建包含多个测试用例的测试计划。如果测试用例具有分配的自动化测试,那么它们将自动调整。检查Running Automated Tests
    • 您可以将您的依赖项保存为 txt 或 csv 格式,并将逻辑读取它们作为测试的第一部分。我们按照相同的方式设置测试的环境变量。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果要更改测试容器或 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
      

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-07-02
          • 2021-04-23
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多