所以我有一个继承的应用程序,我想围绕它建立一个自动化测试套件。这个应用程序在设计时并没有考虑到可测试性,并且代码是一个“大泥球”。我的计划是使用UI自动化测试框架,并在UI级别创建一套测试,直到我有足够的覆盖率,使我能够充满信心地开始重构,并在代码中引入一些接缝,以提高可测试性和设计。
它是一个.Net WinForms应用程序,我所知道的两个框架是:
NUnitForms
和
Project White
据我所知,这两个框架在试图作为自动化构建(持续集成)的一部分运行时都会产生问题,因为大多数CI产品都是作为Windows服务运行的,如果UI使用模式对话框,应用程序将可怕地死亡。我使用CruiseControl.Net作为我的CI工具。
有没有人有什么建议来解决这个问题?有没有一个替代框架可以让情况变得更好?
谢谢,
迪伦
发布于 2009-02-10 17:50:04
NUnitForms有一个“隐藏桌面”特性,可以让你在cc.net中运行单元测试。
http://automaticchainsaw.blogspot.com/2007/09/winforms-testing-using-nunitforms.html http://automaticchainsaw.blogspot.com/2007/09/hidden-desktops-and-nunitforms.html
发布于 2009-02-10 22:56:23
你实际上可以通过控制台应用程序运行巡航控制,这样它就可以进行交互式桌面访问。如果服务器重新启动或崩溃,它不会自动恢复,但至少您可以做到这一点。
也就是说,大多数人对自动化UI测试(winforms、wpf或web)采取的方法是通过构建服务器运行所有非交互式测试。一旦这些测试通过,他们就会将应用程序部署到测试环境中,并手动触发针对新构建的代码版本的测试运行。
这使人们有机会重置测试环境(对UI测试很重要),以及检查应用程序的新版本是否正确构建以及所有单元测试是否通过。毕竟,如果您知道单元测试失败了,那么运行UI测试就没有意义了。:-)
发布于 2009-02-10 16:24:00
我还没有试过,但是有微软的UI Automation Framework:
https://stackoverflow.com/questions/532994
复制相似问题