Как настроить таймауты TestStack.White?

Я использую Visual Studio 2010 и получил TestStack.White через NuGet (у меня версия 0.10.3.118).

Проблема в том, что мой тест нажимает кнопку, которая запускает действие, превышающее 5-секундный тайм-аут по умолчанию. Итак, мой тест всегда дает:

[Error] 'White.Core.Interceptors.CoreInterceptor' Error when invoking Click, on Button with parameters: 

White.Core.UIItems.UIActionException : Window didn't respond, after waiting for 5000 ms
  ----> System.Exception : Timeout occured, after waiting for 5000 ms

Я прочитал документ Уайта об ожидании, но в нем говорится, что нужно посмотреть раздел "Конфигурация", чтобы узнать, как установить мои собственные значения времени ожидания. А этого раздела нет.

Обновление: я попытался создать файл с именем TestStack.White.dll.config и поместить его в тот же каталог, что и TestStackWhite.dll, и моя тестовая dll. Содержимое:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>

    <sectionGroup name="White">
      <section name="Core" type="System.Configuration.NameValueSectionHandler"/>
    </sectionGroup>
  </configSections>

  <White>
    <Core>
      <add key="WorkSessionLocation" value="." />
      <add key="PopupTimeout" value="5000" />
      <add key="SuggestionListTimeout" value="10000" />
      <add key="BusyTimeout" value="10000" />
      <add key="WaitBasedOnHourGlass" value="true" />
      <add key="UIAutomationZeroWindowBugTimeout" value="10000" />
      <add key="TooltipWaitTime" value="10000" />
      <add key="DragStepCount" value="4" />
    </Core>
  </White>
</configuration>

Тем не менее, я все еще получаю 5-секундный тайм-аут, независимо от того, запускаю ли я свой тест изнутри NUnit или VS + Resharper...


person dario_ramos    schedule 25.06.2013    source источник
comment
Это был март 2017 года, и я нашел этот раздел о Teststack.White и жду: teststackwhite.readthedocs. io/en/latest/AdvancedTopics/Ожидание   -  person AudioDroid    schedule 20.03.2017


Ответы (2)


Эти тайм-ауты можно настроить программно в вашем тестовом коде. Например:

CoreAppXmlConfiguration.Instance.BusyTimeout = 20000;

Чтобы сделать это с помощью App.Config, такой файл должен быть связан с тестовой сборкой. Таким образом, добавление App.Config в мой тестовый проект и вставка содержимого из вопроса также работает.

person dario_ramos    schedule 26.06.2013

Я решил проблему, подобную вашей, где тайм-аут теста, когда я нажимаю на элемент. Я использовал это:

  Mouse.Instance.Location = element.ClickablePoint;
  Mouse.Instance.Click();
person Milen Grigorov    schedule 22.08.2018
comment
Спасибо, это действительно устраняет ошибку TestStack.White.UIItems.UIActionException: «Окно не ответило после ожидания {0} мс» на Button.Click() - person pawciu; 30.10.2018
comment
После того, как я отвечу на это, я тоже нашел этот способ: Mouse.Instance.Click(item.ClickablePoint); - person Milen Grigorov; 31.10.2018