0

我在目标机器上将 mstest设置为独立程序,而不安装 Visual Studio。因此,我将所需的文件(* .exe,dll)mstest 复制到目标机器,并在 gac 中注册了 mstest 需要运行单元测试的所有 dll。

到目前为止正常单元测试工作正常。

Acually 我尝试设置 mstest 来运行编码的 ui 测试。我将一些新的 dll 复制到目标机器:

- Microsoft.VisualStudio.QualityTools.CodedUITestFramework.dll
- Microsoft.VisualStudio.TestTools.UITest.Common.dll,TestTools.UITest.Extensions.dll
- Microsoft.VisualStudio.TestTools.UITesting.dll
- Microsoft.VisualStudio.HostingProcess.Utilities.Sync

但是当我尝试在目标机器上通过 mstest.exe 对 cmd.exe 执行测试时,测试会运行但总是失败(在我的本地机器 Visual Studio 2012 上工作正常)。这是一个非常简单的测试:

  - just click on "Start", 
  - type in "calc press enter" 

两台机器使用相同的操作系统。

我猜 MSTest.exe仍然需要一些 dll来执行 codedUiTests。坏事是缺少的 dll 没有出现在 cmd.exe 中,没有错误,没有提示,什么都没有:/
测试正常运行,但所有测试都会失败。

命令输出:

Microsoft (R) Test Execution Command Line Tool Version 11.0.50727.1
Copyright (c) Microsoft Corporation. All rights reserved.

Loading D:\Users\Jenkins\Desktop\CodedUITestProject1\CodedUITestProject1\bin\Debug\CodedUITestProject1.dll...
Starting execution...

Results               Top Level Tests
-------               ---------------
Failed                CodedUITestProject1.CodedUITest1.CodedUITestMethod1
0/1 test(s) Passed, 1 Failed

Summary
-------
Test Run Failed.
  Failed  1
  ---------
  Total   1
Results file:  C:\VS2011Stub\Common7\IDE\TestResults\Jenkins_MSGP166C 2013-05-24 12_36_28.trx
Test Settings: Default Test Settings


有谁知道 mstest.exe 需要哪些文件才能以正确的方式运行 codeduitests?

编辑:我检查了 *.trx 文件并将丢失的 dll 复制到我的目标机器上。

我试图再次运行测试,它再次失败。我再次检查了 trx 文件并收到了一条很棒的消息:/

  <Results>
    <UnitTestResult executionId="4652eeb1-e1b4-4782-a288-dbd4bb0bda5a" testId="484ddbfe-fdc6-0f5d-9e7b-bab4da5b5905" testName="CodedUITestMethod1" computerName="MSGP166C" duration="00:00:00.0887388" startTime="2013-05-24T16:30:24.1716290+02:00" endTime="2013-05-24T16:30:24.6266745+02:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="4652eeb1-e1b4-4782-a288-dbd4bb0bda5a">
      <Output>
        <ErrorInfo>
          <Message>Error calling Initialization method for test class CodedUITestProject1.CodedUITest1: System.IO.FileNotFoundException: Das System kann die angegebene Datei nicht finden. (Ausnahme von HRESULT: 0x80070002)</Message>
          <StackTrace>    bei System.Reflection.RuntimeAssembly.nLoadFile(String path, Evidence evidence)
   bei System.Reflection.Assembly.LoadFile(String path)
   bei Microsoft.VisualStudio.TestTools.UITest.Framework.UITestExtensionPackageManager.LoadAssembly(String assemblyFile)
</StackTrace>
        </ErrorInfo>
      </Output>
    </UnitTestResult>
  </Results>

那么现在缺少什么大会?它没有被提及。



提前致谢

4

1 回答 1

1

我不会尝试复制 dll,而是安装 VS 测试代理。它比 Visual Studio 轻得多,并且会让你得到 mstest。这是我在测试机器上运行 CodedUI 测试时使用的方法。

http://search.microsoft.com/en-us/DownloadResults.aspx?q=test+agents

  1. 下载您构建项目的测试代理版本。(没关系)
  2. 打开安装程序时将有 3 个选项。您需要测试代理。
  3. 您现在应该拥有 mstest 和 codedui 所需的一切

另一个效果很好的方法是将所有 codedui 测试放入有序测试中并将其传递给 mstest。

MSTest /TestContainer:OrderedTest1.orderedtest

应该做的伎俩

于 2014-01-22T20:34:04.110 回答