WatiN through TFS on Windows 2008 Server

China☆狼群 提交于 2019-12-11 02:59:15

问题


I'm trying to run WatiN tests through continuous build on TFS, but I can't get it to work. The errror I get is following:

WatiN.Core.Exceptions.IENotFoundException : Could not find an IE window matching constraint: Timeout while waiting to attach to newly created instance of IE.. Search expired after '30' seconds.
     at WatiN.Core.IE.CreateIEPartiallyInitializedInNewProcess()
     at WatiN.Core.IE.CreateNewIEAndGoToUri(Uri uri, IDialogHandler logonDialogHandler, Boolean createInNewProcess)
     at WatiN.Core.IE..ctor(String url, Boolean createInNewProcess)

I've read that this may be the cause of

  • Requests for "localhost" will resolve to the IPv6 address of ::1 by default rather than the IPv4 address of 127.0.0.1 and the WatiN tests will fail.

This is not the case, because I'm testing against a public URL not on the local machine.

  • IE Enhanced Security Configuration turned on

I've turned this off without any result.

  • Missing files Microsoft.mshtml.dll, Interop.shdocvw.dll or Watin.Core.dll

Check and double check! I have those in my output directory where the tests are run.

The last and final test was to login as the user that runs the build and executes the NUnit testing suite and run the tests by hand.

C:\Users\TFSSERVICE>"C:\Program Files\Nunit 2.5.2\bin\net-2.0\nunit-console.exe"
 /nologo C:\Users\BUILDSERVICE\AppData\Local\Temp\\Continuous\Binaries\Release
\\WebTests.dll

Guess what! It works executing them manually as the tfs build user. So, what am I missing here? Have any ideas why it just keeps timing out when I run through the msbuild engine?

Any thought are welcome! Mikael


回答1:


Judging by the error, it is looking for an Intenet Explorer window. Which it won't be able to find if the build process is being run by a service.

EDIT: Previously I said I didn't know how to fix this.
Although I don't, this page does. Look for the section titled "Automated UI Tests". This ought to work for WatiN as well.




回答2:


I have found the reason of this issue after debugging Watin.
The reason is missed dll : Microsoft.mshtml.dll.

Windows Server 2008 does not have this file on the board so such error raises.

Solution:
- take Microsoft.mshtml.dll from Windows 7;
- copy to the application root directory.



来源:https://stackoverflow.com/questions/1674888/watin-through-tfs-on-windows-2008-server

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!