我和华廷测试的问题,应该浏览PDF格式并上传到网页上。这个测试运行顺利在我的机器上,总能找到PDF格式,点击提交,等待上传完成30秒。

但是,当我尝试运行构建机器(TeamCity的)这个测试,碰巧测试挂在当它应该等待上传点。问题是,测试不会超时,即使我上1分钟,整个测试设置超时在NUnit的,或在重新加载页面。测试只是冻结在上传步骤整个网站。

测试这个功能是非常重要的,但由于与上传这些测试全挂构建我们必须做手工,这是不是真正的自动化测试出来的想法。

有没有人有想法如何解决这个上传问题?或至少设法超时此测试。

stack trace = at System.RuntimeType.InvokeDispMethod(String name, BindingFlags invokeAttr, Object target, Object[] args, Boolean[] byrefModifiers, Int32 culture, String[] namedParameters)
  at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
  at System.RuntimeType.ForwardCallToInvokeMember(String memberName, BindingFlags flags, Object target, Int32[] aWrapperTypes, MessageData& msgData)
  at mshtml.DispHTMLBaseElement.click()
  at WatiN.Core.InternetExplorer.IEElement.ClickOnElement()
  at WatiN.Core.Element.Click()
  at WatiN.Core.FileUpload.Set(String fileName)
有帮助吗?

解决方案

在的问题是,华廷使用的SendKeys设置文件(名称)上传。在华廷2.0的β1此被改变为使用一些API调用。这解决了自动出现一个对话框,确实需要文字输入的时候吊试验的问题。

其他提示

我觉得这里的问题是,你的单元测试依赖于太多外部资源,如您的开发机器的文件系统,网络,等等。

问问自己测试的重要性是:是否有参与,你可以放入一个单独的类任何业务逻辑?然后,你可以写这个类的测试。你基本上需要的是测试上传过程中所有的逻辑,而不实际上传文件或去网络。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top