2013-06-25 20 views
5

Używam Visual Studio 2010 i otrzymałem TestStack.White przez NuGet (otrzymałem wersję 0.10.3.118).Jak skonfigurować Timeouty TestStack.White?

Problem polega na tym, że mój test klika przycisk, który uruchamia akcję przekraczającą domyślny limit czasu 5 sekund. Więc moja próba zawsze daje:

[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 

czytam White's doc about waiting, ale mówi patrzeć sekcji Konfiguracja, aby zobaczyć, jak ustawić własne wartości limitu czasu. Ta sekcja nie istnieje.

Aktualizacja: Próbowałem utworzenie pliku o nazwie TestStack.White.dll.config i umieścić go w tym samym katalogu co TestStackWhite.dll i mojego dll testu. Zawartość:

<?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> 

Niemniej jednak, nadal jestem coraz 5 sekund oczekiwania, czy mogę uruchomić mój test NUnit od wewnątrz lub VS + Resharper ...

+1

Jest marzec 2017 r. I znalazłem tę sekcję o Teststack.White i "czekanie": http://teststackwhite.readthedocs.io/en/latest/AdvancedTopics/Waiting/ – AudioDroid

Odpowiedz

11

Te limity czasu mogą być konfigurowane programowo, w teście kod. Na przykład:

CoreAppXmlConfiguration.Instance.BusyTimeout = 20000; 

to zrobić za pomocą App.Config taki plik musi być związana z zespołem testowym. Dodanie App.Config do mojego projektu testowego i wklejenie treści z tego pytania działa również.