我正在使用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秒的超时...
答案 0 :(得分:11)
可以在测试代码中以编程方式配置这些超时。例如:
CoreAppXmlConfiguration.Instance.BusyTimeout = 20000;
要使用App.Config
执行此操作,此类文件必须与测试程序集关联。因此,在我的测试项目中添加App.Config
并粘贴问题中的内容也是有效的。
答案 1 :(得分:1)
我解决了像您这样的问题,即单击元素时测试超时。我用了这个:
Mouse.Instance.Location = element.ClickablePoint;
Mouse.Instance.Click();