在VS集成环境中能够执行的测试代码,在一般程序中也能够执行。问题关键是如何在程序中配置好CUIT测试执行的环境,即CUIT回放执行引擎是否正确启动。当使用VS的CUIT工程时,每个测试类都被标识了[CodedUITest],当VS的Mstest测试引擎在执行每个测试用例的时候,它会自动读取测试所配置的属性,以判断测试的类型,当它看到是CodedUITest后,它会自动初始化CUIT的底层回放(Playback)执行引擎,让后执行该测试用例。

自己创建的程序无法直接使用CodedUIAttribute和Mstest,需要Playback.Initialize()/Playback.Cleanup()这两个函数来帮助完成启动初始化CUIT的底层回放执行引擎的工作,否则程序中无法直接应用CUIT类库中函数。

要在外部调用Playback函数需要额外添加一些相关的DLL引用,主要包括以下9个:

•Microsoft.VisualStudio.QualityTools.CodedUITestFramework

•Microsoft.VisualStudio.TestTools.UITest.Common

•Microsoft.VisualStudio.TestTools.UITest.Extension

•Microsoft.VisualStudio.TestTools.UITest.Extension.IE

•Microsoft.VisualStudio.TestTools.UITest.Extension.IE.Communication.Interop

•Microsoft.VisualStudio.TestTools.UITest.Extension.Uia

•Microsoft.VisualStudio.TestTools.UITest.Framework

•Microsoft.VisualStudio.TestTools.UITest.Playback

•Microsoft.VisualStudio.TestTools.UITesting

  这些DLL分别在C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\, C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\和C:\Program Files\Common Files\microsoft shared\VSTT\11.0中。

具体调用方法如下:

Microsoft.VisualStudio.TestTools.UITesting.Playback.Initialize();

CodedUITestProject.CodedUITest1 coded = new CodedUITestProject.CodedUITest1();

Try

{

coded.Method(); //具体调用Case方法

}

Microsoft.VisualStudio.TestTools.UITesting.Playback.Cleanup();

还有UITestControl.CaptureImage() 和 UITestControl.Desktop.CaptureImage() ,它们可以用来获取控件和整个屏幕的截屏,这些截屏在测试失败的时候是非常有用的,可以帮助快速分析和定位测试失败的原因,特别是在问题出现具有一定随机性不易Repro的情况下,错误现场的图片对于分析问题至关重要。

心情:原理什么的都挺简单的,但当时为了调试这个方法,却花了很多时间,还在MSDN论坛上发帖求助过,不过好在解决了,感觉不错!

参考:http://social.msdn.microsoft.com/Forums/en-US/vstest/thread/a913b13d-e04c-4168-9657-abd13083c3b2/#52a22663-63b7-498c-9925-ae4530a426a4

转载于:https://www.cnblogs.com/Blackeye286/archive/2013/05/29/3105420.html

Coded UI- Run Coded UI in WinForm相关推荐

  1. Android异步机制一:使用Thread+Handler实现非UI线程更新UI界面

    概述:每个Android应用程序都运行在一个dalvik虚拟机进程中,进程开始的时候会启动一个主线程(MainThread),主线程负责处理和ui相关的事件,因此主线程通常又叫UI线程.而由于Andr ...

  2. vue3.0 结合element ui 开发后台ui框架

    vue3.0 结合element ui 开发后台ui框架,根据element ui 官网步骤安装出现报错信息,解决方法: 按照element UI官网步骤, 启动vue 3.0项目:npm run s ...

  3. jQuery UI vs Kendo UI jQuery Mobile vs Kendo UI Mobile

    jQuery UI vs Kendo UI http://jqueryuivskendoui.com/#introduction jQuery Mobile vs Kendo UI Mobile ht ...

  4. jQuery的UI框架 Liger UI

    jQuery的UI框架 Liger UI http://www.oschina.net/p/ligerui

  5. Android非UI线程更新UI的几种方法

    2019独角兽企业重金招聘Python工程师标准>>> Android用于实现非UI线程与UI线程的交互方法如下: 1.Handler 2.Activity.runOnUIThrea ...

  6. 【移动端vue ui框架学习】vue项目如何使用基于vue的UI框架mint ui

    看了下饿了么团队开发的PC端vue ui框架Element ui之后,顺便看了看同团队开发的移动端的vue ui框架mint ui,那么在vue项目中应该如何使用mint ui呢?以下做简单的记录. ...

  7. InstallShield 2012 Spring新功能试用(17): Suite/Advanced UI 和 Advanced UI安装程序支持命令行Log参数...

    当我们在Suite/Advanced UI 或 Advanced UI工程中配置一个安装包的设置项时,可以打开新的Enable Logging Support设置项(默认是关闭).如果Suite/Ad ...

  8. 在Unity3D项目中接入ShareSDK实现安卓平台微信分享功能(可使用ShareSDK默认UI或自定义UI)...

    最近公司的大厅要重做,我协助主程一起制作新大厅和新框架,前面制作的编辑器也派上了用场.等全部功能做完后我会再写一个复盘,这两天主程在忙于写热更新的功能,所以把接入分享SDK功能的任务交给了我,Shar ...

  9. InstallShield 2012 Spring新功能试用(12): Suite/Advanced UI 和 Advanced UI 工程支持InstallScript安装程序(Part 1)...

    InstallShield现在支持在Suite/Advanced UI 和 Advanced UI 安装工程中导入InstallScript工程类型的安装程序(见下图). 当Suite/Advance ...

  10. 【 Element UI 】—Element UI 的基本使用

    [ Element UI ]-Element UI 的基本使用 一.基于命令行的方式手动安装 npm 安装 npm i element-ui -S CDN 目前可以通过 unpkg.com/eleme ...

最新文章

  1. 革命就是请客吃饭(案例分析吧)
  2. 因买不到RTX 3090,小哥自己搭建了一个专业级机器学习工作站
  3. ai怎么画循环曲线_AI插画设计,用AI制作一个只可爱的短腿柯基插画
  4. golang中的测试命令
  5. LCD编程_LCD控制器
  6. matlab 数据降维和重构_核主成分分析(Kernel PCA, KPCA)的MATLAB 实现
  7. python filename 以txt截尾_What?PPT里也能运行Python?
  8. 计算机网络(湖科大教书匠)
  9. MFC用PostMessage传递消息
  10. python改变像素点颜色,是否可以在Python中更改单个像素的颜色?
  11. 小型机oracle命令,IBM 小型机基本知识及AIX操作系统基本命令.doc
  12. git新建和删除远程分支
  13. 数据挖掘导论课后习题答案-第四章
  14. 代码美化网站,让你的代码别具一格
  15. bootstrop table api
  16. 企业微信账号异常,解决攻略
  17. 将用户需求转成产品需求
  18. QQ音乐sign,jsvmp算法推导
  19. 优惠券有什么用,为什么不直接降价呢?
  20. Ubuntu手机和电脑安装其他终端Terminal Emulator

热门文章

  1. 3月24日服务器维护公告,梦幻西游3月24日更新了什么_梦幻西游3月24日维护及系统调整公告_游戏堡...
  2. nodejs 异常的处理
  3. 深入理解kafka 电子版
  4. 利用反射等离激元超表面的模拟光计算
  5. 记虚拟机装黑苹果踩坑及步骤
  6. 基本的信号——Sa函数(抽样信号)
  7. uniapp-手写三级地区选择实现
  8. 如何创建桌面快捷方式
  9. 前端Vue 对称加密(AES),后台php解密
  10. network secruity studay day3