华廷测试挂起应用程序在上传文件
题
我和华廷测试的问题,应该浏览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调用。这解决了自动出现一个对话框,确实需要文字输入的时候吊试验的问题。
其他提示
我觉得这里的问题是,你的单元测试依赖于太多外部资源,如您的开发机器的文件系统,网络,等等。
问问自己测试的重要性是:是否有参与,你可以放入一个单独的类任何业务逻辑?然后,你可以写这个类的测试。你基本上需要的是测试上传过程中所有的逻辑,而不实际上传文件或去网络。
不隶属于 StackOverflow