我想問下一個案例的一些幫助。由測試控制器和代理遠程執行虛擬機上的CodedUI測試
我希望實現的目標是運行虛擬機Windows 7 SP1,讓我的同事 - 開發人員 - 可以運行在此機器上運行的CodedUI測試。爲了在我的機器上創建虛擬機,它適用於所有人。我從這裏安裝了一個VS 2013測試代理和控制器:http://www.microsoft.com/en-us/download/details.aspx?id=40750
我建立了兩個並根據它們可以相互通信的信息。
我設置了一個用戶運行測試。此用戶是MSDN頁面中描述的管理員和其他組的成員。當我啓動虛擬機就自動登錄,我得到了你可以看到下面的截圖一樣:
此外,當我想設置在VS 2013的代理它說,它 - VS 2013 - 可以與置於虛擬機上的代理進行通信。我可以看到VS中的代理和控制器屬性。然而,對我來說這很奇怪,代理名稱如下所示:* agent_name。我的意思是星號和代理名稱之後。
後,我選擇在測試設置菜單中的testsettings文件,我該請VS運行這個測試建立和工作就可以了至少1-2分鐘,它說的VS說「測試跳過」。測試是單個單元測試還是混合SpecFlow/CodedUI無關緊要。它總是失敗。
我發現我的VS運行的那臺機器的eventlog中有興趣的東西。代理和Controller運行的VM是空的。
無法找到源VSTTExecution的事件ID 0的描述。引發此事件的組件未安裝在本地計算機上或安裝已損壞。您可以在本地計算機上安裝或修復組件。
如果事件發生在另一臺計算機上,顯示信息必須與該事件一起保存。
以下信息包括與事件:
(vstest.executionengine.x86.exe, PID 8440, Thread 10) ControllerProxy: Queue test run error: System.Net.Sockets.SocketException (0x80004005): No such host is known
Server stack trace:
at System.Net.Dns.GetAddrInfo(String name)
at System.Net.Dns.InternalGetHostByName(String hostName, Boolean includeIPv6)
at System.Net.Dns.GetHostAddresses(String hostNameOrAddress)
at System.Runtime.Remoting.Channels.RemoteConnection.CreateNewSocket()
at System.Runtime.Remoting.Channels.RemoteConnection.GetSocket()
at System.Runtime.Remoting.Channels.SocketCache.GetSocket(String machinePortAndSid, Boolean openNew)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.SendRequestWithRetry(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream)
at System.Runtime.Remoting.Channels.Tcp.TcpClientTransportSink.ProcessMessage(IMessage msg, ITransportHeaders requestHeaders, Stream requestStream, ITransportHeaders& responseHeaders, Stream& responseStream)
at System.Runtime.Remoting.Channels.BinaryClientFormatterSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [0]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.VisualStudio.TestTools.Common.FileCopyService.get_DeploymentFlags()
at Microsoft.VisualStudio.TestTools.Controller.ControllerExecution.<StartTestRun>b__1e(FileCopyService fileCopyService)
at Microsoft.VisualStudio.TestTools.Execution.RemoteObjectContainer`1.InvokeAsRemoteUser(Action`1 invoke)
at Microsoft.VisualStudio.TestTools.Controller.ControllerExecution.StartTestRun(TestRun testRun, RemoteObjectContainer`1 fileCopyServiceContainer, RemoteObjectContainer`1 defaultListenerContainer)
at Microsoft.VisualStudio.TestTools.Controller.ControllerObject.QueueTestRun(TestRun testRun, FileCopyService fileCopyService, IControllerEvents eventHandler)
at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Object[]& outArgs)
at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg)
Exception rethrown at [1]:
at System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)
at System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
at Microsoft.VisualStudio.TestTools.Controller.IControllerExecution.QueueTestRun(TestRun testRun, FileCopyService fileCopyService, IControllerEvents eventHandler)
at Microsoft.VisualStudio.TestTools.TestManagement.ControllerProxy.QueueTestRunWorker(Object state)
the message resource is present but the message is not found in the string/message table
如果VS和控制器可以相互通信,那麼爲什麼我得到了「沒有這樣的主機」的錯誤?
我在這裏和微軟經歷了很多描述和錯誤報告,但我不知道該怎麼做。我多次檢查了設置,並且一切正常。
任何人,任何想法我能做什麼?
您是如何安裝測試代理?建議使用MTM(微軟測試經理)實驗室部分安裝它,而不是通過直接下載。 – eetawil 2014-11-26 13:35:16
它是手動安裝的。之後,我通過TM完成了它,並且它的工作很有限。我不得不使用另一個公司提供的測試控制器,它與TM所安裝在虛擬機上的測試代理一起工作。 不幸的是,我無法達到我想要的,因爲通過VS 2013,我無法將測試任務推送到VM,因此我必須使用TM。 – SayusiAndo 2014-12-18 20:35:40