如何配置TestStack.White超时?

时间:2013-06-25 18:49:18

标签: configuration timeout 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

我读了White's doc about waiting,但它说看看配置部分,看看如何设置我自己的超时值。那部分不存在。

更新:我尝试创建一个名为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>

尽管如此,无论是从NUnit还是VS + Resharper中运行我的测试,我仍然会得到5秒的超时...

2 个答案:

答案 0 :(得分:11)

可以在测试代码中以编程方式配置这些超时。例如:

CoreAppXmlConfiguration.Instance.BusyTimeout = 20000;

要使用App.Config执行此操作,此类文件必须与测试程序集关联。因此,在我的测试项目中添加App.Config并粘贴问题中的内容也是有效的。

答案 1 :(得分:1)

我解决了像您这样的问题,即单击元素时测试超时。我用了这个:

  Mouse.Instance.Location = element.ClickablePoint;
  Mouse.Instance.Click();