WatiN через TFS на Windows 2008 Server

Я пытаюсь запустить тесты WatiN через непрерывную сборку TFS, но не могу заставить его работать. Я получаю следующую ошибку:

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" по умолчанию разрешаются в IPv6-адрес :: 1, а не в IPv4-адрес 127.0.0.1, и тесты 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?

Любые мысли приветствуются! Микаэль


person Mikael Lundin    schedule 04.11.2009    source источник


Ответы (2)


Судя по ошибке ищет окно Intenet Explorer. Который он не сможет найти, если процесс сборки выполняется службой.

РЕДАКТИРОВАТЬ: Раньше я сказал, что не знаю, как это исправить.
Хотя я не знаю, эта страница подходит. Найдите раздел «Автоматизированные тесты пользовательского интерфейса». Это должно работать и для WatiN.

person pipTheGeek    schedule 04.11.2009
comment
Ты мой юбиляр! Спасибо! Это была именно моя проблема, и решение оказалось проще, чем я думал. Престижность вам! - person Mikael Lundin; 05.11.2009
comment
Если это поможет, я публиковал предложение о том, чтобы разрешить службе сборки взаимодействовать с рабочим столом, я искал имя службы, когда нашел статью, на которую я ссылался. Полная удача с моей стороны. Я также ранее искал способ запустить модульный тест пользовательского интерфейса из службы сборки TFS, поэтому я рад, что нашел его. - person pipTheGeek; 05.11.2009

Я нашел причину этой проблемы после отладки Watin.
Причина - пропущенная dll: Microsoft.mshtml.dll.

Windows Server 2008 не имеет этого файла на плате, поэтому возникает такая ошибка.

Решение:
- взять Microsoft.mshtml.dll из Windows 7;
- скопировать в корневой каталог приложения.

person TheNIK    schedule 22.03.2012