2009-11-04 35 views
2

我试图通过持续建立在TFS上运行WatiN测试,但我无法让它工作。我得到errror是以下几点:通过在Windows 2008服务器上的TFS WatiN

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) 

我读过,这可能是

  • 请求“localhost”的将被默认 解决 到:: 1 IPv6地址的原因而不是 127.0.0.1的IPv4地址,WatiN测试将失败。

事实并非如此,因为我正在测试一个不在本地计算机上的公共URL。

  • IE增强的安全配置开启

我把这个关闭,没有任何结果。

  • 丢失的文件Microsoft.mshtml.dll,Interop.shdocvw.dll或Watin.Core.dll

检查,并仔细检查!我有我的输出目录中的测试运行。

最后一个也是最后一个测试是以运行构建的用户身份登录并执行NUnit测试套件并手动运行测试。

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 

猜猜看!它可以像tfs构建用户一样手动执行它们。那么,我在这里错过了什么?有任何想法,为什么当我运行msbuild引擎时,它只是保持超时?

任何想法都欢迎! Mikael

回答

5

由错误判断,它正在寻找一个Intenet Explorer窗口。如果构建过程由服务运行,它将无法找到它。

编辑:以前我说过我不知道如何解决这个问题。
虽然我没有,this页面。查找标题为“自动UI测试”的部分。这应该也适用于WatiN。

+0

你是我的英雄!谢谢!这正是我的问题,解决方案比我想象的要容易。荣誉给你! –

+0

如果有任何帮助,我发布了一个关于允许构建服务与桌面交互的建议,当我找到我链接的文章时,我正在寻找服务的名称。我的运气总是很好。我之前也曾经从TFS构建服务中寻找过运行UI单元测试的方法,所以我很高兴找到它。 – pipTheGeek

0

我在调试Watin后发现了这个问题的原因。
原因是错过了DLL:Microsoft.mshtml.dll。

Windows Server 2008在主板上没有这个文件,所以会出现这样的错误。

解决方案:
- 从Windows 7获取Microsoft.mshtml.dll;
- 复制到应用程序根目录。

相关问题