我在目标计算机上设置 mstest 作为独立程序,而不安装Visual Studio。所以我复制了目标机器所需的文件(* .exe,dll)mstest,并在gac中注册所有dll,mstest需要运行单元测试。
目前正常的单元测试工作正常。
我尝试设置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中,没有错误,没有任何提示:/
测试运行正常但未通过所有测试。
CMD-输出:
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以正确的方式运行编码设备需要哪些文件?
编辑:我检查了* .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>
那么大会现在缺少什么?没有提及。
提前致谢
答案 0 :(得分:1)
我没有尝试复制dll,而是安装VS Test Agents。它比视觉工作室轻得多,并且会让你获得mstest。这是我在测试机器上运行CodedUI测试时使用的方法。
http://search.microsoft.com/en-us/DownloadResults.aspx?q=test+agents
另一个运行良好的是将所有的encodeui测试放入有序测试并将其传递给mstest。
MSTest /TestContainer:OrderedTest1.orderedtest
应该做的伎俩