Я пытаюсь запустить тесты 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)
Я читал, что это может быть причиной
Это не так, потому что я тестирую открытый URL не на локальной машине.
Я отключил это без каких-либо результатов.
Проверьте и дважды проверьте! У меня есть те, в моем выходном каталоге, где выполняются тесты.
Последний и последний тест состоял в том, чтобы войти в систему как пользователь, который запускает сборку, и выполняет набор тестов 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?
Любая мысль приветствуется! Микаэл
Судя по ошибке, он ищет окно Intenet Explorer. Который он не сможет найти, если процесс сборки запускается службой.
EDIT: Раньше я сказал, что не знаю, как это исправить. Хотя я этого не делаю, эта страница. Найдите раздел под названием "Автоматизированные тесты пользовательского интерфейса". Это должно работать и для WatiN.
Я нашел причину этой проблемы после отладки Watin.
Причиной является пропущенная dll: Microsoft.mshtml.dll.
Windows Server 2008 не имеет этого файла на плате, поэтому такая ошибка возникает.
Решение:
- взять Microsoft.mshtml.dll из Windows 7;
- скопировать в корневой каталог приложения.