2012-05-09 7 views
0

У меня есть тест GUI (winforms) с использованием White, который отлично работает в dev, но застрял на сервере сборки.Устранение неполадок, когда белые попадают на сервер сборки?

Это открывает приложение ОК, но как только я пытаюсь «делать» что-нибудь:

Button Button = Window.Get<Button>("btnCalculate"); 
Button.Click(); 

Он застревает. Сервер сообщает, что:

---- White.Core.UIItems.UIActionException : Window in still wait mode. Cursor: White.Core.InputDevices.MouseCursor, after waiting for 5000 ms 
    at Bricks.RuntimeFramework.ReflectedObject.Invoke(MethodInfo methodInfo, Object[] arguments) 
    at Bricks.DynamicProxy.DynamicProxyInterceptors.Process(IInvocation invocation, InterceptContext interceptedContext) 
    at White.Core.Interceptors.CoreInterceptor.Intercept(IInvocation invocation) 
    at Castle.DynamicProxy.AbstractInvocation.Proceed() 
    at ButtonProxy6fcb23ab82174f67960e33c02ddb2259.Click() 
    at WinCalc.Gui.Test.AcceptanceTests.WhiteTest() in d:\BuildServer\Agent\work\f00b471a939c7f96\WinCalculator\WinCalc.Gui.Test\AcceptanceTests.cs:line 39 
----- Inner Stack Trace ----- 
    at White.Core.UIItems.Actions.Action.<Handle>b__2() 
    at Bricks.Core.Clock.Perform(Do do, Matched matched, Expired expired) 
    at White.Core.UIItems.Actions.Action.Handle(Window window) 
    at White.Core.UIItems.WindowItems.Window.ActionPerformed(Action action) 
    at White.Core.InputDevices.Mouse.ActionPerformed(ActionListener actionListener) 
    at White.Core.InputDevices.Mouse.Click(Point point, ActionListener actionListener) 
    at White.Core.UIItems.UIItem.PerformClick() 
    at White.Core.UIItems.UIItem.Click() 

С чего начать, чтобы отладить это?

(У меня была работа на другом сервере, поэтому я не верю, что это мой код, это настройка на новом сервере).

ответ

1

Проблема, вероятно, связана с тем, что служба в агенте сборки не может фактически создавать окна, потому что у нее нет рабочего стола.

Первое, что вы можете попробовать, это настроить параметры службы агента сборки, чтобы убедиться, что «разрешить службу взаимодействовать с рабочим столом». проверено. Затем перезапустите службу и повторите попытку.

В прошлом, хотя у меня были несогласованные результаты с этим решением. Я действительно не знаю, почему и почему, но если это не сработает, вы можете попытаться запустить агента Team City в командной строке во время входа в поле. Это должно определенно работать, и если вы будете держать рабочий стол в рабочем состоянии, вы, вероятно, увидите, что ваши Windows созданы и делают все, что им нужно во время теста.

+0

Спасибо за ваш ответ. «Разрешить службу для взаимодействия с рабочим столом» проверяется, так что это не проблема. Проект в настоящее время «припаркован», но когда я получаю время, я попробую ваше предложение в командной строке. – Benjol