51Testing软件测试论坛

标题: 在一个VBS中写了一个Class,调用时发现找不到这个class,为何? [打印本页]

作者: danmy    时间: 2007-10-29 12:25
标题: 在一个VBS中写了一个Class,调用时发现找不到这个class,为何?
在一个vbs中写了一个class bb,也写了一个function,把这个vbs加入了Test resource

然后在qtp中进行调用,set a = new bb,报找不到class bb,可是调用同一个vbs 中的function却是成功的,为什么?

把这个class直接写在qtp中是可以执行的
'------------
aa.vbs

class bb
.
.
.
End class

function cc
.
.
.
end function


在QTP的expertview中:
Set a = New bb       -------------报错,Class bb未定义
a.adduser
set a = nothing

call cc()    -----------执行正确
作者: danmy    时间: 2007-10-29 16:45
没有遇到这个问题的嘛?? 那大家有谁清楚Qtp setting的resouce里的vbs列表是怎么被调用的?执行顺序如何?
作者: hsjzfling    时间: 2007-10-29 17:36
标题: 回复 2# 的帖子
resources 都是在执行QTP中的代码之前就执行的,相当于C中的include吧

没遇到你的问题。。你把逻辑再整理下看看吧,调用Class应该是没什么问题的。
作者: three116    时间: 2007-10-29 20:02
都可以执行的 你还是查看下 你的class 和执行流程吧
作者: three116    时间: 2007-10-29 20:02

作者: Keson    时间: 2008-1-8 11:56
楼主们好,我也出现了这个问题,说我Class未定义, 但是我的Class应该是没问题的呀.
作者: gy21st    时间: 2008-1-8 13:22
可以有四种方法使用类实例。

1、直接在action脚本中定义类,然后action中任何地方都可以实例化类
2、用executefile引入类定义文件,然后action中任何地方都可以实例化类
3、在function lib中定义类,并实例化类,然后再action中直接使用类实例
4、在function lib中定义类,并定义一个实例化类的函数,然后再action中调用该函数对类进行实例化
作者: heqingbluesky    时间: 2008-1-8 14:33
原帖由 gy21st 于 2008-1-8 13:22 发表
可以有四种方法使用类实例。

1、直接在action脚本中定义类,然后action中任何地方都可以实例化类
2、用executefile引入类定义文件,然后action中任何地方都可以实例化类
3、在function lib中定义类,并实例化类 ...


推荐用方法一,我用过,Class可以正常运行。
作者: LittleDuck    时间: 2008-1-8 15:41
原帖由 gy21st 于 2008-1-8 13:22 发表
可以有四种方法使用类实例。

1、直接在action脚本中定义类,然后action中任何地方都可以实例化类
2、用executefile引入类定义文件,然后action中任何地方都可以实例化类
3、在function lib中定义类,并实例化类 ...


很详细哦,这个在帮助文档里有提到过吗?
作者: gy21st    时间: 2008-1-8 16:52
原帖由 heqingbluesky 于 2008-1-8 14:33 发表


推荐用方法一,我用过,Class可以正常运行。



方法一应该是最不能推荐的
公用class一般用第四种方法比较好。
作者: heqingbluesky    时间: 2008-1-8 20:49
原帖由 gy21st 于 2008-1-8 16:52 发表



方法一应该是最不能推荐的
公用class一般用第四种方法比较好。


对,如果是公用的,当然放到LIB里面最后,方便以后调用;如果不是公用的,就可以用方法一.




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2