5

我正在使用 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 关于等待的文档,但它说要查看配置部分以了解如何设置我自己的超时值。并且该部分不存在。

更新:我尝试创建一个名为的文件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 秒的超时......

4

2 回答 2

11

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

CoreAppXmlConfiguration.Instance.BusyTimeout = 20000;

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

于 2013-06-26T13:11:50.903 回答
1

我解决了像你这样的问题,当我点击元素时测试超时。我用过这个:

  Mouse.Instance.Location = element.ClickablePoint;
  Mouse.Instance.Click();
于 2018-08-22T12:09:01.930 回答