首页 > 软件测试/ 正文
一个简单的自动化测试架构的实现(C#)
2012-10-24 16:47:29 ℃翻看自己以前写的代码,突然间看到以前模拟的一个自动化测试架构的实现。幸好自己有写学习笔记的习惯,整理一下,贴出来,以备忘。
特性会作为元数据嵌入到程序集,通过反射机制能够得到这些元数据信息。程序员可以自己定义特性,对特性进行某种格式的定义,并利用特性来影响自己编写代码编译后的程序集(assmbly)自定义特性在编译时作为元数据被编译到程序集中,运行时通过反射机制被读取。这应该是这个自动化测试架构的立足点。
特性的应用:特性一般会在设计框架时很有用。
1、利用反射机制,作为特性的元数据可以反过来在运行时影响代码的运行配置项,(例如:Windows Form程序中[STAThread]和[MTAThread用于表明应用程序的线程模型是单线程单元还是多线程--是否可以这样归属有待商榷)或者为特殊的操作方法以特性作标记,以便在运行时做特殊处理(在P/Invoke中DLLImport特性标记方法转化为托管方法)。
2、可以用于构建管理项目程序集工具:特性表现为某种特殊注释,而注释内容可以在编译后从程序集(例如TestCaseClass.DLL)中读取出来,从而可以通过特性内容的注释和读取实现对程序集中各种类型和方法进行管理(例如可以筛选特定特性的方法执行)。
该框架定义了[ClassInitiative][ClassCleanup][TestMethod]等特性以标记测试函数,而[TestMethod]中还可以定义一些特性参数[TestProperty]去将testmethod分类。在运行时要从待测程序集(dll)中读取相应函数,并保证不同函数的运行顺序。该框架有一系列函数来完成这项工作,这些函数负责运行待测程序集中特定特性标记所标记的函数。如InvokeInitiative()运行标记有[ClassInitiative]的函数;InvokeTestMethod()运行标记[TestMethod]的函数,并用这个InvokeXXX()函数调用先后顺序保证这几种特性函数运行顺序。而这几个InvokeXXX函数中利用反射机制去筛选相应的函数去运行。其中InvokeTestMethod()应该有参数,通过主函数的开关传入,以筛选特定特性的方法。
自定义特性时要注意的
1、自定义特性继承自System.Attribute.
2、特性参数分为环境参数和命名参数,如果特性类有自己的构造函数,则参数是必选的,为命名参数;剩下的参数为命名参数。在特性中应用命名参数必须加上参数名称。可以重载构造函数以满足不同组合。
部分定义特性的代码:
namespace AttributesClass
namespace AttributesClass #region Proerties #region Constructors |
- 上一篇:Dao层的测试实践
- 下一篇:软件测试的作用功不可没
更多计算机培训学校,2013计算机考研学校,计算机维修培训,计算机学校,计算机培训 资讯,计算机二级培训相关文章
- 软件测试杂谈:关于自动化测试,关于Agile,关于团队
- 自动化软件测试的发展前景怎么样?
- 移动应用Beta测试7点诀窍
- 为什么要做探索性测试
- 思维成就测试——探索式测试实践篇
- 从一个测试实验想到的
- 对话马丁·福勒(Martin Fowler)——第六部分:性能与过程调优
- 软件测试人员的核心技术能力,应该是什么?
- 探索性测试揭秘
- 如何保证软件质量
- 软件测试质量分析
- 如何深入开展研发质量管理
- 有效进行软件重用的小提示
- 谁应对软件质量负责?
- 研发质量管理的指导思想
- 质量的三重境界
- 软件质量管理之测试计划(下)
- 测试工作管理与规范
- 固态硬盘是什么
- 笔记本电脑显示屏种类
- 你的电脑是“肉鸡”吗?
- 主板南北桥的区别
- 为什么程序员喜欢在深夜编程?
- 女孩想学点东西现在学什么技术好
- 怎么在短期的时间内学会软件开发技术呢
- 郑州的软件学校这么多选择哪一家比较好呢?
- 软件测试适合初中毕业的男生去学吗
- 郑州Java培训哪家适合大学应届毕业生
- 郑州大学生短期Java培训学校哪家好
- 搜索
-
- 热门标签