UI测试框架+持续集成?

所以我有一个我inheritance的应用程序,我想围绕它构建一个自动化测试套件。 该应用程序的设计并未考虑可测试性,并且代码是“泥泞的大球”。 我的计划是使用UI自动化测试框架并在UI级别创建一套测试,直到我有足够的覆盖范围允许我自信地开始重构并在代码中引入一些接缝以提高可测试性和设计。

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

NUnitForms

白色项目

从我所看到的,两个框架在尝试作为自动构建(持续集成)的一部分运行时会出现问题,因为大多数CI产品作为Windows服务运行,如果UI使用modal dialog,应用程序将会死得很糟糕死亡。 我正在使用CruiseControl.Net作为我的CI工具。

有没有人有任何建议可以解决这个问题? 使用的替代框架可能会使情况更好?

谢谢,

迪伦

您可以通过控制台应用程序实际运行巡航控制,以便它可以进行交互式桌面访问。 如果服务器重新启动或崩溃,它将无法自动恢复,但至少你可以这样做。

也就是说,大多数人使用自动UI测试(winforms,wpf或web)的方法是通过构建服务器运行所有非交互式测试。 一旦这些测试通过,他们就会将应用程序部署到测试环境,并针对新构建的代码版本手动触发测试运行。

这使人们有机会重置测试环境(对UI测试很重要),并检查他是否正确构建了新版本的应用程序并且所有unit testing都已通过。 毕竟,如果您知道unit testing失败,那么运行UI测试是没有意义的。 🙂

我还没有尝试过,但微软的UI自动化框架 :

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

看看这种方法 。 项目的维基中有详细信息。