C#实现自动化测试架构

特性会作为元数据嵌入到程序集(assmbly),通过反射机制能够得到这些元数据信息。程序员可以自己定义特性,对特性进行某种格式的定义,在编译时作为元数据被编译到程序集中,运行时通过反射机制被读取。这应该是这个自动化测试架构的立足点。

 

该框架定义了[ClassInitiative][ClassCleanup][TestMethod]等特性以标记测试函数,而[TestMethod]中还可以定义一些特性参数[TestProperty]去将testmethod分类。在运行时要从待测程序集(dll)中读取相应函数,并保证不同函数的运行顺序。该框架有一系列函数来完成这项工作,这些函数负责运行待测程序集中特定特性标记所标记的函数。如InvokeInitiative()运行标记有[ClassInitiative]的函数;InvokeTestMethod()运行标记[TestMethod]的函数,并用这个InvokeXXX()函数调用先后顺序保证这几种特性函数运行顺序。而这几个InvokeXXX函数中利用反射机制去筛选相应的函数去运行。其中InvokeTestMethod()应该有参数,通过主函数的开关传入,以筛选特定特性的方法。

 

 

namespace AttributesClass
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
    public sealed class ClassCleanupAttribute:Attribute
    {
        public ClassCleanupAttribute()
        { }
    }
}


namespace AttributesClass
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
    public sealed class ClassInitializeAttribute:Attribute
    {
        public ClassInitializeAttribute()
        { }
    }
}


namespace AttributesClass
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
    public sealed class DescriptionAttribute:Attribute
    {
        private string description;
        public string Description
        {
            get { return this.description; }
            set { this.description = value; }
        }
        public DescriptionAttribute(string text)
        {
            this.description = text;
        }
    }
}

namespace AttributesClass
{
    [AttributeUsage(AttributeTargets.Method, AllowMultiple = true)]
    p
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值