UI测试框架+持续集成?

10

我继承了一个应用程序,并想在其周围构建自动化测试套件。该应用程序没有考虑可测试性,代码是一个"大泥球"。我的计划是使用UI自动化测试框架,并创建一组UI级别的测试,直到我有足够的覆盖范围,使我能够有信心开始重构,并引入一些接缝以提高可测试性和设计。

这是一个.Net WinForms应用程序,我知道的两个框架是:

NUnitForms

以及

Project White

从我所读的内容来看,由于大多数CI产品作为Windows服务运行,如果UI使用模态对话框,这两个框架都会面临运行为自动化构建(持续集成)的问题,应用程序将会崩溃。我使用CruiseControl.Net作为我的CI工具。

有人有任何建议来解决这个问题吗?是否有其他可用的框架可以使情况更好?

谢谢,

Dylan

5个回答


3
您实际上可以通过控制台应用程序运行巡航控制,以便它可以具有交互式桌面访问。如果服务器重新启动或崩溃,它将无法自动恢复,但至少您可以这样做。
话虽如此,大多数人在自动化UI测试(WinForms、WPF或Web)方面采取的方法是通过构建服务器运行所有非交互式测试。一旦这些测试通过,他们就会将应用程序部署到测试环境并手动触发针对新构建版本的测试运行。
这给了人们重置测试环境的机会(对于UI测试很重要),并检查新版本的应用程序是否构建正确以及所有单元测试是否通过。毕竟,如果知道单元测试失败了,那么运行UI测试就没有意义。:-)

没错,但在我的情况下我没有任何其他测试。而且,我创建的任何测试套件都一定要以自动化方式运行,否则我们就有可能因为测试“腐烂”和变得无用而忽略它们。不过关于cc.net控制台应用程序的信息很有用。 - Dylan Smith

2
我还没有尝试过,但微软有一个名为UI Automation Framework的技术,它与IT相关。请参考此链接

2
我认为这就是White构建的基础。 http://white.codeplex.com/Wiki/View.aspx?title=Layers - Ade Miller

1

我们在控制台模式下运行了持续集成验收测试,而不是作为已登录的虚拟PC中的Windows服务。这对我们很有效。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接